// Package nautobot provides primitives to interact with the openapi HTTP API.
//
// Code generated by github.com/deepmap/oapi-codegen version v1.12.4 DO NOT EDIT.
package nautobot

import (
	"encoding/json"
	"fmt"
	"time"

	"github.com/deepmap/oapi-codegen/pkg/runtime"
	openapi_types "github.com/deepmap/oapi-codegen/pkg/types"
)

const (
	BasicAuthScopes  = "basicAuth.Scopes"
	CookieAuthScopes = "cookieAuth.Scopes"
	TokenAuthScopes  = "tokenAuth.Scopes"
)

// Defines values for AccessTypeEnum.
const (
	Console  AccessTypeEnum = "Console"
	GNMI     AccessTypeEnum = "gNMI"
	Generic  AccessTypeEnum = "Generic"
	HTTPS    AccessTypeEnum = "HTTP(S)"
	NETCONF  AccessTypeEnum = "NETCONF"
	REST     AccessTypeEnum = "REST"
	RESTCONF AccessTypeEnum = "RESTCONF"
	SNMP     AccessTypeEnum = "SNMP"
	SSH      AccessTypeEnum = "SSH"
)

// Defines values for ActionEnum.
const (
	ActionEnumAllow  ActionEnum = "allow"
	ActionEnumDeny   ActionEnum = "deny"
	ActionEnumDrop   ActionEnum = "drop"
	ActionEnumRemark ActionEnum = "remark"
)

// Defines values for AddressObjectStatusLabel.
const (
	AddressObjectStatusLabelActive         AddressObjectStatusLabel = "Active"
	AddressObjectStatusLabelDecommissioned AddressObjectStatusLabel = "Decommissioned"
	AddressObjectStatusLabelStaged         AddressObjectStatusLabel = "Staged"
)

// Defines values for AddressObjectStatusValue.
const (
	AddressObjectStatusValueActive         AddressObjectStatusValue = "active"
	AddressObjectStatusValueDecommissioned AddressObjectStatusValue = "decommissioned"
	AddressObjectStatusValueStaged         AddressObjectStatusValue = "staged"
)

// Defines values for AddressObjectGroupAddressObjectsStatusLabel.
const (
	AddressObjectGroupAddressObjectsStatusLabelActive         AddressObjectGroupAddressObjectsStatusLabel = "Active"
	AddressObjectGroupAddressObjectsStatusLabelDecommissioned AddressObjectGroupAddressObjectsStatusLabel = "Decommissioned"
	AddressObjectGroupAddressObjectsStatusLabelStaged         AddressObjectGroupAddressObjectsStatusLabel = "Staged"
)

// Defines values for AddressObjectGroupAddressObjectsStatusValue.
const (
	AddressObjectGroupAddressObjectsStatusValueActive         AddressObjectGroupAddressObjectsStatusValue = "active"
	AddressObjectGroupAddressObjectsStatusValueDecommissioned AddressObjectGroupAddressObjectsStatusValue = "decommissioned"
	AddressObjectGroupAddressObjectsStatusValueStaged         AddressObjectGroupAddressObjectsStatusValue = "staged"
)

// Defines values for AddressObjectGroupStatusLabel.
const (
	AddressObjectGroupStatusLabelActive         AddressObjectGroupStatusLabel = "Active"
	AddressObjectGroupStatusLabelDecommissioned AddressObjectGroupStatusLabel = "Decommissioned"
	AddressObjectGroupStatusLabelStaged         AddressObjectGroupStatusLabel = "Staged"
)

// Defines values for AddressObjectGroupStatusValue.
const (
	AddressObjectGroupStatusValueActive         AddressObjectGroupStatusValue = "active"
	AddressObjectGroupStatusValueDecommissioned AddressObjectGroupStatusValue = "decommissioned"
	AddressObjectGroupStatusValueStaged         AddressObjectGroupStatusValue = "staged"
)

// Defines values for AfiSafiEnum.
const (
	Ipv4Flowspec   AfiSafiEnum = "ipv4_flowspec"
	Ipv4Multicast  AfiSafiEnum = "ipv4_multicast"
	Ipv4Unicast    AfiSafiEnum = "ipv4_unicast"
	Ipv6Flowspec   AfiSafiEnum = "ipv6_flowspec"
	Ipv6Multicast  AfiSafiEnum = "ipv6_multicast"
	Ipv6Unicast    AfiSafiEnum = "ipv6_unicast"
	L2Evpn         AfiSafiEnum = "l2_evpn"
	L2Vpls         AfiSafiEnum = "l2_vpls"
	Vpnv4Multicast AfiSafiEnum = "vpnv4_multicast"
	Vpnv4Unicast   AfiSafiEnum = "vpnv4_unicast"
	Vpnv6Multicast AfiSafiEnum = "vpnv6_multicast"
	Vpnv6Unicast   AfiSafiEnum = "vpnv6_unicast"
)

// Defines values for AggregateFamilyLabel.
const (
	AggregateFamilyLabelIPv4 AggregateFamilyLabel = "IPv4"
	AggregateFamilyLabelIPv6 AggregateFamilyLabel = "IPv6"
)

// Defines values for AggregateFamilyValue.
const (
	AggregateFamilyValueN4 AggregateFamilyValue = 4
	AggregateFamilyValueN6 AggregateFamilyValue = 6
)

// Defines values for AutonomousSystemStatusLabel.
const (
	AutonomousSystemStatusLabelActive    AutonomousSystemStatusLabel = "Active"
	AutonomousSystemStatusLabelAvailable AutonomousSystemStatusLabel = "Available"
	AutonomousSystemStatusLabelPlanned   AutonomousSystemStatusLabel = "Planned"
)

// Defines values for AutonomousSystemStatusValue.
const (
	AutonomousSystemStatusValueActive    AutonomousSystemStatusValue = "active"
	AutonomousSystemStatusValueAvailable AutonomousSystemStatusValue = "available"
	AutonomousSystemStatusValuePlanned   AutonomousSystemStatusValue = "planned"
)

// Defines values for BulkWritableAddressObjectGroupRequestAddressObjectsStatus.
const (
	BulkWritableAddressObjectGroupRequestAddressObjectsStatusActive         BulkWritableAddressObjectGroupRequestAddressObjectsStatus = "active"
	BulkWritableAddressObjectGroupRequestAddressObjectsStatusDecommissioned BulkWritableAddressObjectGroupRequestAddressObjectsStatus = "decommissioned"
	BulkWritableAddressObjectGroupRequestAddressObjectsStatusStaged         BulkWritableAddressObjectGroupRequestAddressObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAH            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAN            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolARIS          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAX25          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBNA           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCBT           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCFTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPHB          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPNX          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCCP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDX           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDSR           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEMCON         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolENCAP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolESP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEthernet      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolFC            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolFIRE          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGMTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGRE           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolHIP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolHMP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIATP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolICMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPR          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDRP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIFMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIL            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolINLSP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPCV          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPComp        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPIP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPLT          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPPC          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIRTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOIP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolL2TP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLARP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMUX           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolManet         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolN3PC          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNARP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNVPII         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPGM           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIM           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIPE          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPNNI          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPRM           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPUP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPVP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolQNX           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolROHC          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRVD           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATMON        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCPS          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSDRP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSKIP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSM            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSMP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSNP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSPS           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSRP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSUNND         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCF           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTLSP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTP            BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUTI           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVINES         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVISA          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVMTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBMON         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWESP          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWSN           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNET          BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAH            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAN            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolARIS          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAX25          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBNA           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCBT           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCFTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCPHB          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCPNX          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCRTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDCCP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDDX           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDSR           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEMCON         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolENCAP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolESP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEthernet      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolFC            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolFIRE          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGMTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGRE           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolHIP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolHMP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIATP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolICMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDPR          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDRP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIFMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIGMP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIGP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIL            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolINLSP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPCV          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPComp        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPIP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPLT          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPPC          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIRTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolISOIP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolL2TP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLARP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMUX           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolManet         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolN3PC          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNARP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNVPII         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPGM           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPIM           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPIPE          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPNNI          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPRM           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPUP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPVP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolQNX           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolROHC          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRSVP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRVD           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSATMON        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCPS          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSDRP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSKIP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSM            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSMP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSNP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSPS           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSRP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSUNND         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTCF           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTCP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTLSP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTP            BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUDP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUTI           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVINES         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVISA          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVMTP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWBMON         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWESP          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWSN           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXNET          BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXTP           BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusActive         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusStaged         BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAH            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAN            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolARIS          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAX25          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBNA           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCBT           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCFTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCPHB          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCPNX          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCRTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDCCP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDDP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDDX           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDGP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDSR           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEGP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEMCON         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolENCAP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolESP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEthernet      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolFC            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolFIRE          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGGP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGMTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGRE           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolHIP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolHMP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIATP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolICMP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPR          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDRP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIFMP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIGMP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIGP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIL            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolINLSP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPCV          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPComp        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPIP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPLT          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPPC          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIRTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolISOIP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolL2TP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLARP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMTP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMUX           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolManet         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolN3PC          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNARP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNVPII         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPGM           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPIM           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPIPE          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPNNI          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPRM           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPTP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPUP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPVP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolQNX           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRDP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolROHC          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRVD           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSATMON        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCPS          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSDRP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSKIP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSM            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSMP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSNP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSPS           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSRP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSTP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSUNND         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTCF           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTCP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTLSP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTP            BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTTP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUDP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUTI           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVINES         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVISA          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVMTP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWBMON         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWESP          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWSN           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXNET          BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXTP           BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAH            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAN            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolARIS          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAX25          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBNA           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCBT           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCFTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCPHB          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCPNX          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCRTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDCCP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDDP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDDX           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDGP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDSR           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEGP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEMCON         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolENCAP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolESP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEthernet      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolFC            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolFIRE          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGGP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGMTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGRE           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolHIP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolHMP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIATP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolICMP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDPR          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDRP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIFMP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIGMP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIGP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIL            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolINLSP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPCV          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPComp        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPIP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPLT          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPPC          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIRTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolISOIP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolL2TP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLARP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMTP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMUX           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolManet         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolN3PC          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNARP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNVPII         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPGM           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPIM           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPIPE          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPNNI          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPRM           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPTP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPUP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPVP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolQNX           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRDP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolROHC          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRSVP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRVD           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSATMON        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCPS          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSDRP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSKIP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSM            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSMP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSNP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSPS           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSRP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSTP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSUNND         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTCF           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTCP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTLSP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTP            BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTTP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUDP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUTI           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVINES         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVISA          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVMTP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWBMON         BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWESP          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWSN           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXNET          BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXTP           BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus.
const (
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusActive         BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "active"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusDecommissioned BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusStaged         BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAH            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAN            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolARIS          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAX25          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBNA           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCBT           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCFTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPHB          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPNX          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCCP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDSR           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEMCON         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolENCAP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolESP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEthernet      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFC            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFIRE          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGMTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGRE           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHIP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHMP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIATP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolICMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPR          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDRP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIFMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIL            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolINLSP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPCV          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPComp        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPIP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPLT          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPPC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIRTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOIP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolL2TP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLARP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMUX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolManet         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolN3PC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNARP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNVPII         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPGM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIPE          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPNNI          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPRM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPUP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPVP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolQNX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolROHC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRVD           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATMON        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCPS          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSDRP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSKIP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSM            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSMP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSNP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSPS           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSRP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSUNND         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCF           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTLSP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTP            BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUTI           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVINES         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVISA          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVMTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBMON         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWESP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWSN           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNET          BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAH            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAN            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolARIS          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAX25          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBNA           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCBT           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCFTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCPHB          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCPNX          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCRTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDCCP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDDX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDSR           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEMCON         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolENCAP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolESP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEthernet      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolFC            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolFIRE          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGMTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGRE           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolHIP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolHMP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIATP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolICMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDPR          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDRP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIFMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIGMP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIGP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIL            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolINLSP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPCV          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPComp        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPIP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPLT          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPPC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIRTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolISOIP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolL2TP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLARP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMUX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolManet         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolN3PC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNARP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNVPII         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPGM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPIM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPIPE          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPNNI          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPRM           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPUP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPVP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolQNX           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolROHC          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRSVP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRVD           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSATMON        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCPS          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSDRP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSKIP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSM            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSMP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSNP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSPS           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSRP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSUNND         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTCF           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTCP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTLSP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTP            BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUDP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUTI           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVINES         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVISA          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVMTP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWBMON         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWESP          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWSN           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXNET          BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXTP           BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusActive         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAH            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAN            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolARIS          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAX25          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBNA           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCBT           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCFTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPHB          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPNX          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCCP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDX           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDSR           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEMCON         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolENCAP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolESP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEthernet      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolFC            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolFIRE          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGMTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGRE           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolHIP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolHMP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIATP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolICMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPR          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDRP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIFMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIL            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolINLSP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPCV          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPComp        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPIP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPLT          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPPC          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIRTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOIP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolL2TP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLARP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMUX           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolManet         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolN3PC          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNARP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNVPII         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPGM           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIM           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIPE          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPNNI          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPRM           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPUP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPVP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolQNX           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolROHC          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRVD           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATMON        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCPS          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSDRP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSKIP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSM            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSMP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSNP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSPS           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSRP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSUNND         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCF           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTLSP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTP            BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUTI           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVINES         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVISA          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVMTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBMON         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWESP          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWSN           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNET          BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "staged"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAH            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "AH"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAN            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "A/N"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolARIS          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ARIS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAX25          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "AX.25"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBBNRCCMON     BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BBN-RCC-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBNA           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BNA"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBRSATMON      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BR-SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCBT           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CBT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCFTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CFTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCHAOS         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CHAOS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCPHB          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CPHB"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCPNX          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CPNX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCRTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CRTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCRUDP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CRUDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCompaqPeer    BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Compaq-Peer"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDCCP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DCCP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDCNMEAS       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DCN-MEAS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDDX           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DDX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDSR           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DSR"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEIGRP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EIGRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEMCON         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EMCON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolENCAP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ENCAP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolESP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ESP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolETHERIP       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ETHERIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEthernet      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Ethernet"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolFC            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "FC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolFIRE          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "FIRE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGMTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGRE           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GRE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolHIP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "HIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolHMP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "HMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIATP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IATP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolICMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ICMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDPR          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDPR"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDPRCMTP      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDPR-CMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDRP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIFMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IFMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIGMP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IGMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIGP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIL            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IL"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolINLSP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "I-NLSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPCV          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPCV"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPComp        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPComp"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPIP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPLT          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPLT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPPC          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPPC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPXInIP       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPX-in-IP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIRTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IRTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolISOIP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ISO-IP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolISOTP4        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ISO-TP4"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolKRYPTOLAN     BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "KRYPTOLAN"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolL2TP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "L2TP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLARP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LARP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLEAF1         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LEAF-1"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLEAF2         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LEAF-2"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMERITINP      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MERIT-INP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMFENSP        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MFE-NSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMOBILE        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MOBILE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMUX           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MUX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolManet         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "manet"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolN3PC          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "3PC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNARP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NARP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNETBLT        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NETBLT"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNSFNETIGP     BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NSFNET-IGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNVPII         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NVP-II"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolOSPFIGP       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "OSPFIGP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPGM           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PGM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPIM           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PIM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPIPE          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PIPE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPNNI          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PNNI"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPRM           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PRM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPUP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PUP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPVP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PVP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolQNX           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "QNX"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolROHC          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ROHC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRSVP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RSVP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRSVPE2EIGNORE BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRVD           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RVD"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSATEXPAK      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SAT-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSATMON        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SAT-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCCSP         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCC-SP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCPS          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCPS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSDRP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SDRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSECUREVMTP    BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SECURE-VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSKIP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SKIP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSM            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SM"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSMP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SMP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSNP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SNP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSPS           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SPS"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSRP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SRP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSSCOPMCE      BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SSCOPMCE"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "STP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSUNND         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SUN-ND"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSpriteRPC     BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Sprite-RPC"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTCF           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TCF"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTCP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TCP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTLSP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TLSP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTP            BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TP++"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTRUNK1        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TRUNK-1"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTRUNK2        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TRUNK-2"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUDP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUDPLite       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UDPLite"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUTI           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UTI"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVINES         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VINES"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVISA          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VISA"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVMTP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VMTP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWBEXPAK       BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WB-EXPAK"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWBMON         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WB-MON"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWESP          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WESP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWSN           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WSN"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXNET          BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XNET"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXNSIDP        BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XNS-IDP"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXTP           BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XTP"
)

// Defines values for BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus.
const (
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusActive         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "active"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusDecommissioned BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "decommissioned"
	BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusStaged         BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus.
const (
	BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusActive         BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "active"
	BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusDecommissioned BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusStaged         BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus.
const (
	BulkWritablePolicyRuleRequestDestinationAddressGroupsStatusActive         BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "active"
	BulkWritablePolicyRuleRequestDestinationAddressGroupsStatusDecommissioned BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationAddressGroupsStatusStaged         BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationAddressesStatus.
const (
	BulkWritablePolicyRuleRequestDestinationAddressesStatusActive         BulkWritablePolicyRuleRequestDestinationAddressesStatus = "active"
	BulkWritablePolicyRuleRequestDestinationAddressesStatusDecommissioned BulkWritablePolicyRuleRequestDestinationAddressesStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationAddressesStatusStaged         BulkWritablePolicyRuleRequestDestinationAddressesStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAH            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAN            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolARIS          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAX25          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBNA           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCBT           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCFTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCPHB          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCPNX          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCRTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDCCP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDDP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDDX           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDGP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDSR           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEGP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEMCON         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolENCAP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolESP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEthernet      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolFC            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolFIRE          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGGP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGMTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGRE           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolHIP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolHMP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIATP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolICMP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDPR          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDRP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIFMP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIGMP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIGP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIL            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolINLSP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPCV          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPComp        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPIP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPLT          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPPC          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIRTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolISOIP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolL2TP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLARP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMTP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMUX           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolManet         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolN3PC          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNARP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNVPII         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPGM           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPIM           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPIPE          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPNNI          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPRM           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPTP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPUP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPVP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolQNX           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRDP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolROHC          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRSVP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRVD           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSATMON        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCPS          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSDRP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSKIP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSM            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSMP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSNP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSPS           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSRP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSTP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSUNND         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTCF           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTCP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTLSP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTP            BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTTP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUDP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUTI           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVINES         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVISA          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVMTP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWBMON         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWESP          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWSN           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXNET          BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXTP           BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus.
const (
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusActive         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "active"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusDecommissioned BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusStaged         BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus.
const (
	BulkWritablePolicyRuleRequestDestinationServiceGroupsStatusActive         BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "active"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsStatusDecommissioned BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationServiceGroupsStatusStaged         BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationServicesIpProtocol.
const (
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolAH            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "AH"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolAN            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "A/N"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolARIS          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ARIS"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolAX25          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "AX.25"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolBBNRCCMON     BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BBN-RCC-MON"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolBNA           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BNA"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolBRSATMON      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BR-SAT-MON"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCBT           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CBT"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCFTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CFTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCHAOS         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CHAOS"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCPHB          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CPHB"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCPNX          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CPNX"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCRTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CRTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCRUDP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CRUDP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolCompaqPeer    BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Compaq-Peer"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDCCP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DCCP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDCNMEAS       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DCN-MEAS"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDDP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DDP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDDX           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DDX"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDGP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolDSR           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DSR"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolEGP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolEIGRP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EIGRP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolEMCON         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EMCON"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolENCAP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ENCAP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolESP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ESP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolETHERIP       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ETHERIP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolEthernet      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Ethernet"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolFC            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "FC"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolFIRE          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "FIRE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolGGP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolGMTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GMTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolGRE           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GRE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolHIP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "HIP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolHMP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "HMP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIATP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IATP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolICMP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ICMP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDPR          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDPR"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDPRCMTP      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDPR-CMTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDRP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDRP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIFMP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IFMP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIGMP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IGMP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIGP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIL            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IL"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolINLSP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "I-NLSP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPCV          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPCV"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPComp        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPComp"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPIP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPIP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPLT          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPLT"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPPC          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPPC"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPXInIP       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPX-in-IP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolIRTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IRTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolISOIP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ISO-IP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolISOTP4        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ISO-TP4"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolKRYPTOLAN     BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "KRYPTOLAN"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolL2TP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "L2TP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolLARP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LARP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolLEAF1         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LEAF-1"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolLEAF2         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LEAF-2"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolMERITINP      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MERIT-INP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolMFENSP        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MFE-NSP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolMOBILE        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MOBILE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolMTP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolMUX           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MUX"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolManet         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "manet"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolN3PC          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "3PC"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolNARP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NARP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolNETBLT        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NETBLT"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolNSFNETIGP     BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NSFNET-IGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolNVPII         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NVP-II"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolOSPFIGP       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "OSPFIGP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPGM           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PGM"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPIM           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PIM"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPIPE          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PIPE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPNNI          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PNNI"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPRM           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PRM"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPTP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPUP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PUP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolPVP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PVP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolQNX           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "QNX"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolRDP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RDP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolROHC          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ROHC"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolRSVP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RSVP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolRSVPE2EIGNORE BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolRVD           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RVD"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSATEXPAK      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SAT-EXPAK"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSATMON        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SAT-MON"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCCSP         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCC-SP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCPS          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCPS"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSDRP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SDRP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSECUREVMTP    BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SECURE-VMTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSKIP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SKIP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSM            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SM"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSMP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SMP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSNP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SNP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSPS           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SPS"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSRP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SRP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSSCOPMCE      BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SSCOPMCE"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSTP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "STP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSUNND         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SUN-ND"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolSpriteRPC     BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Sprite-RPC"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTCF           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TCF"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTCP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TCP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTLSP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TLSP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTP            BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TP++"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTRUNK1        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TRUNK-1"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTRUNK2        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TRUNK-2"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolTTP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolUDP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UDP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolUDPLite       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UDPLite"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolUTI           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UTI"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolVINES         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VINES"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolVISA          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VISA"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolVMTP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VMTP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolWBEXPAK       BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WB-EXPAK"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolWBMON         BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WB-MON"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolWESP          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WESP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolWSN           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WSN"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolXNET          BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XNET"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolXNSIDP        BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XNS-IDP"
	BulkWritablePolicyRuleRequestDestinationServicesIpProtocolXTP           BulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XTP"
)

// Defines values for BulkWritablePolicyRuleRequestDestinationServicesStatus.
const (
	BulkWritablePolicyRuleRequestDestinationServicesStatusActive         BulkWritablePolicyRuleRequestDestinationServicesStatus = "active"
	BulkWritablePolicyRuleRequestDestinationServicesStatusDecommissioned BulkWritablePolicyRuleRequestDestinationServicesStatus = "decommissioned"
	BulkWritablePolicyRuleRequestDestinationServicesStatusStaged         BulkWritablePolicyRuleRequestDestinationServicesStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus.
const (
	BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusActive         BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "active"
	BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusDecommissioned BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusStaged         BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceAddressGroupsStatus.
const (
	BulkWritablePolicyRuleRequestSourceAddressGroupsStatusActive         BulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "active"
	BulkWritablePolicyRuleRequestSourceAddressGroupsStatusDecommissioned BulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceAddressGroupsStatusStaged         BulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceAddressesStatus.
const (
	BulkWritablePolicyRuleRequestSourceAddressesStatusActive         BulkWritablePolicyRuleRequestSourceAddressesStatus = "active"
	BulkWritablePolicyRuleRequestSourceAddressesStatusDecommissioned BulkWritablePolicyRuleRequestSourceAddressesStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceAddressesStatusStaged         BulkWritablePolicyRuleRequestSourceAddressesStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceUserGroupsStatus.
const (
	BulkWritablePolicyRuleRequestSourceUserGroupsStatusActive         BulkWritablePolicyRuleRequestSourceUserGroupsStatus = "active"
	BulkWritablePolicyRuleRequestSourceUserGroupsStatusDecommissioned BulkWritablePolicyRuleRequestSourceUserGroupsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceUserGroupsStatusStaged         BulkWritablePolicyRuleRequestSourceUserGroupsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus.
const (
	BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusActive         BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "active"
	BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusDecommissioned BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusStaged         BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "staged"
)

// Defines values for BulkWritablePolicyRuleRequestSourceUsersStatus.
const (
	BulkWritablePolicyRuleRequestSourceUsersStatusActive         BulkWritablePolicyRuleRequestSourceUsersStatus = "active"
	BulkWritablePolicyRuleRequestSourceUsersStatusDecommissioned BulkWritablePolicyRuleRequestSourceUsersStatus = "decommissioned"
	BulkWritablePolicyRuleRequestSourceUsersStatusStaged         BulkWritablePolicyRuleRequestSourceUsersStatus = "staged"
)

// Defines values for BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol.
const (
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAH            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "AH"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAN            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "A/N"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolARIS          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ARIS"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAX25          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "AX.25"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBBNRCCMON     BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BBN-RCC-MON"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBNA           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BNA"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBRSATMON      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BR-SAT-MON"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCBT           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CBT"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCFTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CFTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCHAOS         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CHAOS"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCPHB          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CPHB"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCPNX          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CPNX"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCRTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CRTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCRUDP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CRUDP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCompaqPeer    BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Compaq-Peer"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDCCP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DCCP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDCNMEAS       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DCN-MEAS"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDDP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DDP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDDX           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DDX"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDGP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDSR           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DSR"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEGP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEIGRP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EIGRP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEMCON         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EMCON"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolENCAP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ENCAP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolESP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ESP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolETHERIP       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ETHERIP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEthernet      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Ethernet"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolFC            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "FC"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolFIRE          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "FIRE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGGP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGMTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GMTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGRE           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GRE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolHIP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "HIP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolHMP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "HMP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIATP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IATP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolICMP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ICMP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDPR          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDPR"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDPRCMTP      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDPR-CMTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDRP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDRP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIFMP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IFMP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIGMP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IGMP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIGP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIL            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IL"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolINLSP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "I-NLSP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPCV          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPCV"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPComp        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPComp"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPIP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPIP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPLT          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPLT"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPPC          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPPC"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPXInIP       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPX-in-IP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIRTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IRTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolISOIP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ISO-IP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolISOTP4        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ISO-TP4"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolKRYPTOLAN     BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "KRYPTOLAN"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolL2TP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "L2TP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLARP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LARP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLEAF1         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LEAF-1"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLEAF2         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LEAF-2"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMERITINP      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MERIT-INP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMFENSP        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MFE-NSP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMOBILE        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MOBILE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMTP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMUX           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MUX"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolManet         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "manet"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolN3PC          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "3PC"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNARP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NARP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNETBLT        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NETBLT"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNSFNETIGP     BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NSFNET-IGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNVPII         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NVP-II"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolOSPFIGP       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "OSPFIGP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPGM           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PGM"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPIM           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PIM"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPIPE          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PIPE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPNNI          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PNNI"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPRM           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PRM"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPTP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPUP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PUP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPVP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PVP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolQNX           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "QNX"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRDP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RDP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolROHC          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ROHC"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRSVP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RSVP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRSVPE2EIGNORE BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRVD           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RVD"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSATEXPAK      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SAT-EXPAK"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSATMON        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SAT-MON"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCCSP         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCC-SP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCPS          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCPS"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSDRP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SDRP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSECUREVMTP    BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SECURE-VMTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSKIP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SKIP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSM            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SM"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSMP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SMP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSNP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SNP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSPS           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SPS"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSRP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SRP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSSCOPMCE      BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SSCOPMCE"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSTP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "STP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSUNND         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SUN-ND"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSpriteRPC     BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Sprite-RPC"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTCF           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TCF"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTCP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TCP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTLSP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TLSP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTP            BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TP++"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTRUNK1        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TRUNK-1"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTRUNK2        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TRUNK-2"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTTP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUDP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UDP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUDPLite       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UDPLite"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUTI           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UTI"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVINES         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VINES"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVISA          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VISA"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVMTP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VMTP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWBEXPAK       BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WB-EXPAK"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWBMON         BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WB-MON"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWESP          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WESP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWSN           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WSN"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXNET          BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XNET"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXNSIDP        BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XNS-IDP"
	BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXTP           BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XTP"
)

// Defines values for BulkWritableServiceObjectGroupRequestServiceObjectsStatus.
const (
	BulkWritableServiceObjectGroupRequestServiceObjectsStatusActive         BulkWritableServiceObjectGroupRequestServiceObjectsStatus = "active"
	BulkWritableServiceObjectGroupRequestServiceObjectsStatusDecommissioned BulkWritableServiceObjectGroupRequestServiceObjectsStatus = "decommissioned"
	BulkWritableServiceObjectGroupRequestServiceObjectsStatusStaged         BulkWritableServiceObjectGroupRequestServiceObjectsStatus = "staged"
)

// Defines values for BulkWritableUserObjectGroupRequestUserObjectsStatus.
const (
	BulkWritableUserObjectGroupRequestUserObjectsStatusActive         BulkWritableUserObjectGroupRequestUserObjectsStatus = "active"
	BulkWritableUserObjectGroupRequestUserObjectsStatusDecommissioned BulkWritableUserObjectGroupRequestUserObjectsStatus = "decommissioned"
	BulkWritableUserObjectGroupRequestUserObjectsStatusStaged         BulkWritableUserObjectGroupRequestUserObjectsStatus = "staged"
)

// Defines values for ButtonClassEnum.
const (
	ButtonClassEnumDanger  ButtonClassEnum = "danger"
	ButtonClassEnumDefault ButtonClassEnum = "default"
	ButtonClassEnumInfo    ButtonClassEnum = "info"
	ButtonClassEnumLink    ButtonClassEnum = "link"
	ButtonClassEnumPrimary ButtonClassEnum = "primary"
	ButtonClassEnumSuccess ButtonClassEnum = "success"
	ButtonClassEnumWarning ButtonClassEnum = "warning"
)

// Defines values for CVELCMSeverityLabel.
const (
	CVELCMSeverityLabelCritical CVELCMSeverityLabel = "Critical"
	CVELCMSeverityLabelHigh     CVELCMSeverityLabel = "High"
	CVELCMSeverityLabelLow      CVELCMSeverityLabel = "Low"
	CVELCMSeverityLabelMedium   CVELCMSeverityLabel = "Medium"
	CVELCMSeverityLabelNone     CVELCMSeverityLabel = "None"
)

// Defines values for CVELCMSeverityValue.
const (
	CVELCMSeverityValueCritical CVELCMSeverityValue = "Critical"
	CVELCMSeverityValueHigh     CVELCMSeverityValue = "High"
	CVELCMSeverityValueLow      CVELCMSeverityValue = "Low"
	CVELCMSeverityValueMedium   CVELCMSeverityValue = "Medium"
	CVELCMSeverityValueNone     CVELCMSeverityValue = "None"
)

// Defines values for CableLengthUnitLabel.
const (
	CableLengthUnitLabelCentimeters CableLengthUnitLabel = "Centimeters"
	CableLengthUnitLabelFeet        CableLengthUnitLabel = "Feet"
	CableLengthUnitLabelInches      CableLengthUnitLabel = "Inches"
	CableLengthUnitLabelMeters      CableLengthUnitLabel = "Meters"
)

// Defines values for CableLengthUnitValue.
const (
	CableLengthUnitValueCm CableLengthUnitValue = "cm"
	CableLengthUnitValueFt CableLengthUnitValue = "ft"
	CableLengthUnitValueIn CableLengthUnitValue = "in"
	CableLengthUnitValueM  CableLengthUnitValue = "m"
)

// Defines values for CableStatusLabel.
const (
	CableStatusLabelConnected       CableStatusLabel = "Connected"
	CableStatusLabelDecommissioning CableStatusLabel = "Decommissioning"
	CableStatusLabelPlanned         CableStatusLabel = "Planned"
)

// Defines values for CableStatusValue.
const (
	CableStatusValueConnected       CableStatusValue = "connected"
	CableStatusValueDecommissioning CableStatusValue = "decommissioning"
	CableStatusValuePlanned         CableStatusValue = "planned"
)

// Defines values for CableStatusChoices.
const (
	CableStatusChoicesConnected       CableStatusChoices = "connected"
	CableStatusChoicesDecommissioning CableStatusChoices = "decommissioning"
	CableStatusChoicesPlanned         CableStatusChoices = "planned"
)

// Defines values for CableTypeChoices.
const (
	Aoc        CableTypeChoices = "aoc"
	Cat3       CableTypeChoices = "cat3"
	Cat5       CableTypeChoices = "cat5"
	Cat5e      CableTypeChoices = "cat5e"
	Cat6       CableTypeChoices = "cat6"
	Cat6a      CableTypeChoices = "cat6a"
	Cat7       CableTypeChoices = "cat7"
	Cat7a      CableTypeChoices = "cat7a"
	Cat8       CableTypeChoices = "cat8"
	Coaxial    CableTypeChoices = "coaxial"
	DacActive  CableTypeChoices = "dac-active"
	DacPassive CableTypeChoices = "dac-passive"
	Mmf        CableTypeChoices = "mmf"
	MmfOm1     CableTypeChoices = "mmf-om1"
	MmfOm2     CableTypeChoices = "mmf-om2"
	MmfOm3     CableTypeChoices = "mmf-om3"
	MmfOm4     CableTypeChoices = "mmf-om4"
	Mrj21Trunk CableTypeChoices = "mrj21-trunk"
	Power      CableTypeChoices = "power"
	Smf        CableTypeChoices = "smf"
	SmfOs1     CableTypeChoices = "smf-os1"
	SmfOs2     CableTypeChoices = "smf-os2"
)

// Defines values for CircuitStatusLabel.
const (
	CircuitStatusLabelActive         CircuitStatusLabel = "Active"
	CircuitStatusLabelDecommissioned CircuitStatusLabel = "Decommissioned"
	CircuitStatusLabelDeprovisioning CircuitStatusLabel = "Deprovisioning"
	CircuitStatusLabelOffline        CircuitStatusLabel = "Offline"
	CircuitStatusLabelPlanned        CircuitStatusLabel = "Planned"
	CircuitStatusLabelProvisioning   CircuitStatusLabel = "Provisioning"
)

// Defines values for CircuitStatusValue.
const (
	CircuitStatusValueActive         CircuitStatusValue = "active"
	CircuitStatusValueDecommissioned CircuitStatusValue = "decommissioned"
	CircuitStatusValueDeprovisioning CircuitStatusValue = "deprovisioning"
	CircuitStatusValueOffline        CircuitStatusValue = "offline"
	CircuitStatusValuePlanned        CircuitStatusValue = "planned"
	CircuitStatusValueProvisioning   CircuitStatusValue = "provisioning"
)

// Defines values for CircuitStatusChoices.
const (
	CircuitStatusChoicesActive         CircuitStatusChoices = "active"
	CircuitStatusChoicesDecommissioned CircuitStatusChoices = "decommissioned"
	CircuitStatusChoicesDeprovisioning CircuitStatusChoices = "deprovisioning"
	CircuitStatusChoicesOffline        CircuitStatusChoices = "offline"
	CircuitStatusChoicesPlanned        CircuitStatusChoices = "planned"
	CircuitStatusChoicesProvisioning   CircuitStatusChoices = "provisioning"
)

// Defines values for ConfigToPushFaceLabel.
const (
	ConfigToPushFaceLabelFront ConfigToPushFaceLabel = "Front"
	ConfigToPushFaceLabelRear  ConfigToPushFaceLabel = "Rear"
)

// Defines values for ConfigToPushFaceValue.
const (
	ConfigToPushFaceValueFront ConfigToPushFaceValue = "front"
	ConfigToPushFaceValueRear  ConfigToPushFaceValue = "rear"
)

// Defines values for ConfigToPushStatusLabel.
const (
	ConfigToPushStatusLabelActive          ConfigToPushStatusLabel = "Active"
	ConfigToPushStatusLabelDecommissioning ConfigToPushStatusLabel = "Decommissioning"
	ConfigToPushStatusLabelFailed          ConfigToPushStatusLabel = "Failed"
	ConfigToPushStatusLabelInventory       ConfigToPushStatusLabel = "Inventory"
	ConfigToPushStatusLabelOffline         ConfigToPushStatusLabel = "Offline"
	ConfigToPushStatusLabelPlanned         ConfigToPushStatusLabel = "Planned"
	ConfigToPushStatusLabelStaged          ConfigToPushStatusLabel = "Staged"
)

// Defines values for ConfigToPushStatusValue.
const (
	ConfigToPushStatusValueActive          ConfigToPushStatusValue = "active"
	ConfigToPushStatusValueDecommissioning ConfigToPushStatusValue = "decommissioning"
	ConfigToPushStatusValueFailed          ConfigToPushStatusValue = "failed"
	ConfigToPushStatusValueInventory       ConfigToPushStatusValue = "inventory"
	ConfigToPushStatusValueOffline         ConfigToPushStatusValue = "offline"
	ConfigToPushStatusValuePlanned         ConfigToPushStatusValue = "planned"
	ConfigToPushStatusValueStaged          ConfigToPushStatusValue = "staged"
)

// Defines values for ConfigTypeEnum.
const (
	ConfigTypeEnumCli    ConfigTypeEnum = "cli"
	ConfigTypeEnumCustom ConfigTypeEnum = "custom"
	ConfigTypeEnumJson   ConfigTypeEnum = "json"
)

// Defines values for ConsolePortTypeLabel.
const (
	ConsolePortTypeLabelDB25      ConsolePortTypeLabel = "DB-25"
	ConsolePortTypeLabelDE9       ConsolePortTypeLabel = "DE-9"
	ConsolePortTypeLabelOther     ConsolePortTypeLabel = "Other"
	ConsolePortTypeLabelRJ11      ConsolePortTypeLabel = "RJ-11"
	ConsolePortTypeLabelRJ12      ConsolePortTypeLabel = "RJ-12"
	ConsolePortTypeLabelRJ45      ConsolePortTypeLabel = "RJ-45"
	ConsolePortTypeLabelUSBMicroA ConsolePortTypeLabel = "USB Micro A"
	ConsolePortTypeLabelUSBMicroB ConsolePortTypeLabel = "USB Micro B"
	ConsolePortTypeLabelUSBMiniA  ConsolePortTypeLabel = "USB Mini A"
	ConsolePortTypeLabelUSBMiniB  ConsolePortTypeLabel = "USB Mini B"
	ConsolePortTypeLabelUSBTypeA  ConsolePortTypeLabel = "USB Type A"
	ConsolePortTypeLabelUSBTypeB  ConsolePortTypeLabel = "USB Type B"
	ConsolePortTypeLabelUSBTypeC  ConsolePortTypeLabel = "USB Type C"
)

// Defines values for ConsolePortTypeValue.
const (
	ConsolePortTypeValueDb25      ConsolePortTypeValue = "db-25"
	ConsolePortTypeValueDe9       ConsolePortTypeValue = "de-9"
	ConsolePortTypeValueOther     ConsolePortTypeValue = "other"
	ConsolePortTypeValueRj11      ConsolePortTypeValue = "rj-11"
	ConsolePortTypeValueRj12      ConsolePortTypeValue = "rj-12"
	ConsolePortTypeValueRj45      ConsolePortTypeValue = "rj-45"
	ConsolePortTypeValueUsbA      ConsolePortTypeValue = "usb-a"
	ConsolePortTypeValueUsbB      ConsolePortTypeValue = "usb-b"
	ConsolePortTypeValueUsbC      ConsolePortTypeValue = "usb-c"
	ConsolePortTypeValueUsbMicroA ConsolePortTypeValue = "usb-micro-a"
	ConsolePortTypeValueUsbMicroB ConsolePortTypeValue = "usb-micro-b"
	ConsolePortTypeValueUsbMiniA  ConsolePortTypeValue = "usb-mini-a"
	ConsolePortTypeValueUsbMiniB  ConsolePortTypeValue = "usb-mini-b"
)

// Defines values for ConsolePortTemplateTypeLabel.
const (
	ConsolePortTemplateTypeLabelDB25      ConsolePortTemplateTypeLabel = "DB-25"
	ConsolePortTemplateTypeLabelDE9       ConsolePortTemplateTypeLabel = "DE-9"
	ConsolePortTemplateTypeLabelOther     ConsolePortTemplateTypeLabel = "Other"
	ConsolePortTemplateTypeLabelRJ11      ConsolePortTemplateTypeLabel = "RJ-11"
	ConsolePortTemplateTypeLabelRJ12      ConsolePortTemplateTypeLabel = "RJ-12"
	ConsolePortTemplateTypeLabelRJ45      ConsolePortTemplateTypeLabel = "RJ-45"
	ConsolePortTemplateTypeLabelUSBMicroA ConsolePortTemplateTypeLabel = "USB Micro A"
	ConsolePortTemplateTypeLabelUSBMicroB ConsolePortTemplateTypeLabel = "USB Micro B"
	ConsolePortTemplateTypeLabelUSBMiniA  ConsolePortTemplateTypeLabel = "USB Mini A"
	ConsolePortTemplateTypeLabelUSBMiniB  ConsolePortTemplateTypeLabel = "USB Mini B"
	ConsolePortTemplateTypeLabelUSBTypeA  ConsolePortTemplateTypeLabel = "USB Type A"
	ConsolePortTemplateTypeLabelUSBTypeB  ConsolePortTemplateTypeLabel = "USB Type B"
	ConsolePortTemplateTypeLabelUSBTypeC  ConsolePortTemplateTypeLabel = "USB Type C"
)

// Defines values for ConsolePortTemplateTypeValue.
const (
	ConsolePortTemplateTypeValueDb25      ConsolePortTemplateTypeValue = "db-25"
	ConsolePortTemplateTypeValueDe9       ConsolePortTemplateTypeValue = "de-9"
	ConsolePortTemplateTypeValueOther     ConsolePortTemplateTypeValue = "other"
	ConsolePortTemplateTypeValueRj11      ConsolePortTemplateTypeValue = "rj-11"
	ConsolePortTemplateTypeValueRj12      ConsolePortTemplateTypeValue = "rj-12"
	ConsolePortTemplateTypeValueRj45      ConsolePortTemplateTypeValue = "rj-45"
	ConsolePortTemplateTypeValueUsbA      ConsolePortTemplateTypeValue = "usb-a"
	ConsolePortTemplateTypeValueUsbB      ConsolePortTemplateTypeValue = "usb-b"
	ConsolePortTemplateTypeValueUsbC      ConsolePortTemplateTypeValue = "usb-c"
	ConsolePortTemplateTypeValueUsbMicroA ConsolePortTemplateTypeValue = "usb-micro-a"
	ConsolePortTemplateTypeValueUsbMicroB ConsolePortTemplateTypeValue = "usb-micro-b"
	ConsolePortTemplateTypeValueUsbMiniA  ConsolePortTemplateTypeValue = "usb-mini-a"
	ConsolePortTemplateTypeValueUsbMiniB  ConsolePortTemplateTypeValue = "usb-mini-b"
)

// Defines values for ConsolePortTypeChoices.
const (
	ConsolePortTypeChoicesDb25      ConsolePortTypeChoices = "db-25"
	ConsolePortTypeChoicesDe9       ConsolePortTypeChoices = "de-9"
	ConsolePortTypeChoicesOther     ConsolePortTypeChoices = "other"
	ConsolePortTypeChoicesRj11      ConsolePortTypeChoices = "rj-11"
	ConsolePortTypeChoicesRj12      ConsolePortTypeChoices = "rj-12"
	ConsolePortTypeChoicesRj45      ConsolePortTypeChoices = "rj-45"
	ConsolePortTypeChoicesUsbA      ConsolePortTypeChoices = "usb-a"
	ConsolePortTypeChoicesUsbB      ConsolePortTypeChoices = "usb-b"
	ConsolePortTypeChoicesUsbC      ConsolePortTypeChoices = "usb-c"
	ConsolePortTypeChoicesUsbMicroA ConsolePortTypeChoices = "usb-micro-a"
	ConsolePortTypeChoicesUsbMicroB ConsolePortTypeChoices = "usb-micro-b"
	ConsolePortTypeChoicesUsbMiniA  ConsolePortTypeChoices = "usb-mini-a"
	ConsolePortTypeChoicesUsbMiniB  ConsolePortTypeChoices = "usb-mini-b"
)

// Defines values for ConsoleServerPortTypeLabel.
const (
	ConsoleServerPortTypeLabelDB25      ConsoleServerPortTypeLabel = "DB-25"
	ConsoleServerPortTypeLabelDE9       ConsoleServerPortTypeLabel = "DE-9"
	ConsoleServerPortTypeLabelOther     ConsoleServerPortTypeLabel = "Other"
	ConsoleServerPortTypeLabelRJ11      ConsoleServerPortTypeLabel = "RJ-11"
	ConsoleServerPortTypeLabelRJ12      ConsoleServerPortTypeLabel = "RJ-12"
	ConsoleServerPortTypeLabelRJ45      ConsoleServerPortTypeLabel = "RJ-45"
	ConsoleServerPortTypeLabelUSBMicroA ConsoleServerPortTypeLabel = "USB Micro A"
	ConsoleServerPortTypeLabelUSBMicroB ConsoleServerPortTypeLabel = "USB Micro B"
	ConsoleServerPortTypeLabelUSBMiniA  ConsoleServerPortTypeLabel = "USB Mini A"
	ConsoleServerPortTypeLabelUSBMiniB  ConsoleServerPortTypeLabel = "USB Mini B"
	ConsoleServerPortTypeLabelUSBTypeA  ConsoleServerPortTypeLabel = "USB Type A"
	ConsoleServerPortTypeLabelUSBTypeB  ConsoleServerPortTypeLabel = "USB Type B"
	ConsoleServerPortTypeLabelUSBTypeC  ConsoleServerPortTypeLabel = "USB Type C"
)

// Defines values for ConsoleServerPortTypeValue.
const (
	ConsoleServerPortTypeValueDb25      ConsoleServerPortTypeValue = "db-25"
	ConsoleServerPortTypeValueDe9       ConsoleServerPortTypeValue = "de-9"
	ConsoleServerPortTypeValueOther     ConsoleServerPortTypeValue = "other"
	ConsoleServerPortTypeValueRj11      ConsoleServerPortTypeValue = "rj-11"
	ConsoleServerPortTypeValueRj12      ConsoleServerPortTypeValue = "rj-12"
	ConsoleServerPortTypeValueRj45      ConsoleServerPortTypeValue = "rj-45"
	ConsoleServerPortTypeValueUsbA      ConsoleServerPortTypeValue = "usb-a"
	ConsoleServerPortTypeValueUsbB      ConsoleServerPortTypeValue = "usb-b"
	ConsoleServerPortTypeValueUsbC      ConsoleServerPortTypeValue = "usb-c"
	ConsoleServerPortTypeValueUsbMicroA ConsoleServerPortTypeValue = "usb-micro-a"
	ConsoleServerPortTypeValueUsbMicroB ConsoleServerPortTypeValue = "usb-micro-b"
	ConsoleServerPortTypeValueUsbMiniA  ConsoleServerPortTypeValue = "usb-mini-a"
	ConsoleServerPortTypeValueUsbMiniB  ConsoleServerPortTypeValue = "usb-mini-b"
)

// Defines values for ConsoleServerPortTemplateTypeLabel.
const (
	ConsoleServerPortTemplateTypeLabelDB25      ConsoleServerPortTemplateTypeLabel = "DB-25"
	ConsoleServerPortTemplateTypeLabelDE9       ConsoleServerPortTemplateTypeLabel = "DE-9"
	ConsoleServerPortTemplateTypeLabelOther     ConsoleServerPortTemplateTypeLabel = "Other"
	ConsoleServerPortTemplateTypeLabelRJ11      ConsoleServerPortTemplateTypeLabel = "RJ-11"
	ConsoleServerPortTemplateTypeLabelRJ12      ConsoleServerPortTemplateTypeLabel = "RJ-12"
	ConsoleServerPortTemplateTypeLabelRJ45      ConsoleServerPortTemplateTypeLabel = "RJ-45"
	ConsoleServerPortTemplateTypeLabelUSBMicroA ConsoleServerPortTemplateTypeLabel = "USB Micro A"
	ConsoleServerPortTemplateTypeLabelUSBMicroB ConsoleServerPortTemplateTypeLabel = "USB Micro B"
	ConsoleServerPortTemplateTypeLabelUSBMiniA  ConsoleServerPortTemplateTypeLabel = "USB Mini A"
	ConsoleServerPortTemplateTypeLabelUSBMiniB  ConsoleServerPortTemplateTypeLabel = "USB Mini B"
	ConsoleServerPortTemplateTypeLabelUSBTypeA  ConsoleServerPortTemplateTypeLabel = "USB Type A"
	ConsoleServerPortTemplateTypeLabelUSBTypeB  ConsoleServerPortTemplateTypeLabel = "USB Type B"
	ConsoleServerPortTemplateTypeLabelUSBTypeC  ConsoleServerPortTemplateTypeLabel = "USB Type C"
)

// Defines values for ConsoleServerPortTemplateTypeValue.
const (
	ConsoleServerPortTemplateTypeValueDb25      ConsoleServerPortTemplateTypeValue = "db-25"
	ConsoleServerPortTemplateTypeValueDe9       ConsoleServerPortTemplateTypeValue = "de-9"
	ConsoleServerPortTemplateTypeValueOther     ConsoleServerPortTemplateTypeValue = "other"
	ConsoleServerPortTemplateTypeValueRj11      ConsoleServerPortTemplateTypeValue = "rj-11"
	ConsoleServerPortTemplateTypeValueRj12      ConsoleServerPortTemplateTypeValue = "rj-12"
	ConsoleServerPortTemplateTypeValueRj45      ConsoleServerPortTemplateTypeValue = "rj-45"
	ConsoleServerPortTemplateTypeValueUsbA      ConsoleServerPortTemplateTypeValue = "usb-a"
	ConsoleServerPortTemplateTypeValueUsbB      ConsoleServerPortTemplateTypeValue = "usb-b"
	ConsoleServerPortTemplateTypeValueUsbC      ConsoleServerPortTemplateTypeValue = "usb-c"
	ConsoleServerPortTemplateTypeValueUsbMicroA ConsoleServerPortTemplateTypeValue = "usb-micro-a"
	ConsoleServerPortTemplateTypeValueUsbMicroB ConsoleServerPortTemplateTypeValue = "usb-micro-b"
	ConsoleServerPortTemplateTypeValueUsbMiniA  ConsoleServerPortTemplateTypeValue = "usb-mini-a"
	ConsoleServerPortTemplateTypeValueUsbMiniB  ConsoleServerPortTemplateTypeValue = "usb-mini-b"
)

// Defines values for CustomFieldSerializerVersion12FilterLogicLabel.
const (
	CustomFieldSerializerVersion12FilterLogicLabelDisabled CustomFieldSerializerVersion12FilterLogicLabel = "Disabled"
	CustomFieldSerializerVersion12FilterLogicLabelExact    CustomFieldSerializerVersion12FilterLogicLabel = "Exact"
	CustomFieldSerializerVersion12FilterLogicLabelLoose    CustomFieldSerializerVersion12FilterLogicLabel = "Loose"
)

// Defines values for CustomFieldSerializerVersion12FilterLogicValue.
const (
	CustomFieldSerializerVersion12FilterLogicValueDisabled CustomFieldSerializerVersion12FilterLogicValue = "disabled"
	CustomFieldSerializerVersion12FilterLogicValueExact    CustomFieldSerializerVersion12FilterLogicValue = "exact"
	CustomFieldSerializerVersion12FilterLogicValueLoose    CustomFieldSerializerVersion12FilterLogicValue = "loose"
)

// Defines values for CustomFieldSerializerVersion12TypeLabel.
const (
	CustomFieldSerializerVersion12TypeLabelBooleanTruefalse  CustomFieldSerializerVersion12TypeLabel = "Boolean (true/false)"
	CustomFieldSerializerVersion12TypeLabelDate              CustomFieldSerializerVersion12TypeLabel = "Date"
	CustomFieldSerializerVersion12TypeLabelInteger           CustomFieldSerializerVersion12TypeLabel = "Integer"
	CustomFieldSerializerVersion12TypeLabelJSON              CustomFieldSerializerVersion12TypeLabel = "JSON"
	CustomFieldSerializerVersion12TypeLabelMultipleSelection CustomFieldSerializerVersion12TypeLabel = "Multiple selection"
	CustomFieldSerializerVersion12TypeLabelSelection         CustomFieldSerializerVersion12TypeLabel = "Selection"
	CustomFieldSerializerVersion12TypeLabelText              CustomFieldSerializerVersion12TypeLabel = "Text"
	CustomFieldSerializerVersion12TypeLabelURL               CustomFieldSerializerVersion12TypeLabel = "URL"
)

// Defines values for CustomFieldSerializerVersion12TypeValue.
const (
	CustomFieldSerializerVersion12TypeValueBoolean     CustomFieldSerializerVersion12TypeValue = "boolean"
	CustomFieldSerializerVersion12TypeValueDate        CustomFieldSerializerVersion12TypeValue = "date"
	CustomFieldSerializerVersion12TypeValueInteger     CustomFieldSerializerVersion12TypeValue = "integer"
	CustomFieldSerializerVersion12TypeValueJson        CustomFieldSerializerVersion12TypeValue = "json"
	CustomFieldSerializerVersion12TypeValueMultiSelect CustomFieldSerializerVersion12TypeValue = "multi-select"
	CustomFieldSerializerVersion12TypeValueSelect      CustomFieldSerializerVersion12TypeValue = "select"
	CustomFieldSerializerVersion12TypeValueText        CustomFieldSerializerVersion12TypeValue = "text"
	CustomFieldSerializerVersion12TypeValueUrl         CustomFieldSerializerVersion12TypeValue = "url"
)

// Defines values for CustomFieldTypeChoices.
const (
	CustomFieldTypeChoicesBoolean     CustomFieldTypeChoices = "boolean"
	CustomFieldTypeChoicesDate        CustomFieldTypeChoices = "date"
	CustomFieldTypeChoicesInteger     CustomFieldTypeChoices = "integer"
	CustomFieldTypeChoicesJson        CustomFieldTypeChoices = "json"
	CustomFieldTypeChoicesMultiSelect CustomFieldTypeChoices = "multi-select"
	CustomFieldTypeChoicesSelect      CustomFieldTypeChoices = "select"
	CustomFieldTypeChoicesText        CustomFieldTypeChoices = "text"
	CustomFieldTypeChoicesUrl         CustomFieldTypeChoices = "url"
)

// Defines values for DeviceFaceLabel.
const (
	DeviceFaceLabelFront DeviceFaceLabel = "Front"
	DeviceFaceLabelRear  DeviceFaceLabel = "Rear"
)

// Defines values for DeviceFaceValue.
const (
	DeviceFaceValueFront DeviceFaceValue = "front"
	DeviceFaceValueRear  DeviceFaceValue = "rear"
)

// Defines values for DeviceStatusLabel.
const (
	DeviceStatusLabelActive          DeviceStatusLabel = "Active"
	DeviceStatusLabelDecommissioning DeviceStatusLabel = "Decommissioning"
	DeviceStatusLabelFailed          DeviceStatusLabel = "Failed"
	DeviceStatusLabelInventory       DeviceStatusLabel = "Inventory"
	DeviceStatusLabelOffline         DeviceStatusLabel = "Offline"
	DeviceStatusLabelPlanned         DeviceStatusLabel = "Planned"
	DeviceStatusLabelStaged          DeviceStatusLabel = "Staged"
)

// Defines values for DeviceStatusValue.
const (
	DeviceStatusValueActive          DeviceStatusValue = "active"
	DeviceStatusValueDecommissioning DeviceStatusValue = "decommissioning"
	DeviceStatusValueFailed          DeviceStatusValue = "failed"
	DeviceStatusValueInventory       DeviceStatusValue = "inventory"
	DeviceStatusValueOffline         DeviceStatusValue = "offline"
	DeviceStatusValuePlanned         DeviceStatusValue = "planned"
	DeviceStatusValueStaged          DeviceStatusValue = "staged"
)

// Defines values for DeviceRedundancyGroupFailoverStrategyLabel.
const (
	DeviceRedundancyGroupFailoverStrategyLabelActiveActive  DeviceRedundancyGroupFailoverStrategyLabel = "Active/Active"
	DeviceRedundancyGroupFailoverStrategyLabelActivePassive DeviceRedundancyGroupFailoverStrategyLabel = "Active/Passive"
)

// Defines values for DeviceRedundancyGroupFailoverStrategyValue.
const (
	DeviceRedundancyGroupFailoverStrategyValueActiveActive  DeviceRedundancyGroupFailoverStrategyValue = "active-active"
	DeviceRedundancyGroupFailoverStrategyValueActivePassive DeviceRedundancyGroupFailoverStrategyValue = "active-passive"
)

// Defines values for DeviceRedundancyGroupStatusLabel.
const (
	DeviceRedundancyGroupStatusLabelActive          DeviceRedundancyGroupStatusLabel = "Active"
	DeviceRedundancyGroupStatusLabelDecommissioning DeviceRedundancyGroupStatusLabel = "Decommissioning"
	DeviceRedundancyGroupStatusLabelPlanned         DeviceRedundancyGroupStatusLabel = "Planned"
	DeviceRedundancyGroupStatusLabelRetired         DeviceRedundancyGroupStatusLabel = "Retired"
	DeviceRedundancyGroupStatusLabelStaging         DeviceRedundancyGroupStatusLabel = "Staging"
)

// Defines values for DeviceRedundancyGroupStatusValue.
const (
	DeviceRedundancyGroupStatusValueActive          DeviceRedundancyGroupStatusValue = "active"
	DeviceRedundancyGroupStatusValueDecommissioning DeviceRedundancyGroupStatusValue = "decommissioning"
	DeviceRedundancyGroupStatusValuePlanned         DeviceRedundancyGroupStatusValue = "planned"
	DeviceRedundancyGroupStatusValueRetired         DeviceRedundancyGroupStatusValue = "retired"
	DeviceRedundancyGroupStatusValueStaging         DeviceRedundancyGroupStatusValue = "staging"
)

// Defines values for DeviceStatusChoices.
const (
	DeviceStatusChoicesActive          DeviceStatusChoices = "active"
	DeviceStatusChoicesDecommissioning DeviceStatusChoices = "decommissioning"
	DeviceStatusChoicesFailed          DeviceStatusChoices = "failed"
	DeviceStatusChoicesInventory       DeviceStatusChoices = "inventory"
	DeviceStatusChoicesOffline         DeviceStatusChoices = "offline"
	DeviceStatusChoicesPlanned         DeviceStatusChoices = "planned"
	DeviceStatusChoicesStaged          DeviceStatusChoices = "staged"
)

// Defines values for DeviceTypeSubdeviceRoleLabel.
const (
	DeviceTypeSubdeviceRoleLabelChild  DeviceTypeSubdeviceRoleLabel = "Child"
	DeviceTypeSubdeviceRoleLabelParent DeviceTypeSubdeviceRoleLabel = "Parent"
)

// Defines values for DeviceTypeSubdeviceRoleValue.
const (
	DeviceTypeSubdeviceRoleValueChild  DeviceTypeSubdeviceRoleValue = "child"
	DeviceTypeSubdeviceRoleValueParent DeviceTypeSubdeviceRoleValue = "parent"
)

// Defines values for DeviceWithConfigContextFaceLabel.
const (
	DeviceWithConfigContextFaceLabelFront DeviceWithConfigContextFaceLabel = "Front"
	DeviceWithConfigContextFaceLabelRear  DeviceWithConfigContextFaceLabel = "Rear"
)

// Defines values for DeviceWithConfigContextFaceValue.
const (
	DeviceWithConfigContextFaceValueFront DeviceWithConfigContextFaceValue = "front"
	DeviceWithConfigContextFaceValueRear  DeviceWithConfigContextFaceValue = "rear"
)

// Defines values for DeviceWithConfigContextStatusLabel.
const (
	DeviceWithConfigContextStatusLabelActive          DeviceWithConfigContextStatusLabel = "Active"
	DeviceWithConfigContextStatusLabelDecommissioning DeviceWithConfigContextStatusLabel = "Decommissioning"
	DeviceWithConfigContextStatusLabelFailed          DeviceWithConfigContextStatusLabel = "Failed"
	DeviceWithConfigContextStatusLabelInventory       DeviceWithConfigContextStatusLabel = "Inventory"
	DeviceWithConfigContextStatusLabelOffline         DeviceWithConfigContextStatusLabel = "Offline"
	DeviceWithConfigContextStatusLabelPlanned         DeviceWithConfigContextStatusLabel = "Planned"
	DeviceWithConfigContextStatusLabelStaged          DeviceWithConfigContextStatusLabel = "Staged"
)

// Defines values for DeviceWithConfigContextStatusValue.
const (
	DeviceWithConfigContextStatusValueActive          DeviceWithConfigContextStatusValue = "active"
	DeviceWithConfigContextStatusValueDecommissioning DeviceWithConfigContextStatusValue = "decommissioning"
	DeviceWithConfigContextStatusValueFailed          DeviceWithConfigContextStatusValue = "failed"
	DeviceWithConfigContextStatusValueInventory       DeviceWithConfigContextStatusValue = "inventory"
	DeviceWithConfigContextStatusValueOffline         DeviceWithConfigContextStatusValue = "offline"
	DeviceWithConfigContextStatusValuePlanned         DeviceWithConfigContextStatusValue = "planned"
	DeviceWithConfigContextStatusValueStaged          DeviceWithConfigContextStatusValue = "staged"
)

// Defines values for FQDNStatusLabel.
const (
	FQDNStatusLabelActive         FQDNStatusLabel = "Active"
	FQDNStatusLabelDecommissioned FQDNStatusLabel = "Decommissioned"
	FQDNStatusLabelStaged         FQDNStatusLabel = "Staged"
)

// Defines values for FQDNStatusValue.
const (
	FQDNStatusValueActive         FQDNStatusValue = "active"
	FQDNStatusValueDecommissioned FQDNStatusValue = "decommissioned"
	FQDNStatusValueStaged         FQDNStatusValue = "staged"
)

// Defines values for FaceEnum.
const (
	FaceEnumFront FaceEnum = "front"
	FaceEnumRear  FaceEnum = "rear"
)

// Defines values for FailoverStrategyEnum.
const (
	ActiveActive  FailoverStrategyEnum = "active-active"
	ActivePassive FailoverStrategyEnum = "active-passive"
)

// Defines values for FeedLegEnum.
const (
	FeedLegEnumA FeedLegEnum = "A"
	FeedLegEnumB FeedLegEnum = "B"
	FeedLegEnumC FeedLegEnum = "C"
)

// Defines values for FilterLogicEnum.
const (
	Disabled FilterLogicEnum = "disabled"
	Exact    FilterLogicEnum = "exact"
	Loose    FilterLogicEnum = "loose"
)

// Defines values for FrontPortTypeLabel.
const (
	FrontPortTypeLabelBNC       FrontPortTypeLabel = "BNC"
	FrontPortTypeLabelCS        FrontPortTypeLabel = "CS"
	FrontPortTypeLabelFC        FrontPortTypeLabel = "FC"
	FrontPortTypeLabelGG45      FrontPortTypeLabel = "GG45"
	FrontPortTypeLabelLC        FrontPortTypeLabel = "LC"
	FrontPortTypeLabelLCAPC     FrontPortTypeLabel = "LC/APC"
	FrontPortTypeLabelLSH       FrontPortTypeLabel = "LSH"
	FrontPortTypeLabelLSHAPC    FrontPortTypeLabel = "LSH/APC"
	FrontPortTypeLabelMPO       FrontPortTypeLabel = "MPO"
	FrontPortTypeLabelMRJ21     FrontPortTypeLabel = "MRJ21"
	FrontPortTypeLabelMTRJ      FrontPortTypeLabel = "MTRJ"
	FrontPortTypeLabelN110Punch FrontPortTypeLabel = "110 Punch"
	FrontPortTypeLabelN8P2C     FrontPortTypeLabel = "8P2C"
	FrontPortTypeLabelN8P4C     FrontPortTypeLabel = "8P4C"
	FrontPortTypeLabelN8P6C     FrontPortTypeLabel = "8P6C"
	FrontPortTypeLabelN8P8C     FrontPortTypeLabel = "8P8C"
	FrontPortTypeLabelSC        FrontPortTypeLabel = "SC"
	FrontPortTypeLabelSCAPC     FrontPortTypeLabel = "SC/APC"
	FrontPortTypeLabelSN        FrontPortTypeLabel = "SN"
	FrontPortTypeLabelST        FrontPortTypeLabel = "ST"
	FrontPortTypeLabelSplice    FrontPortTypeLabel = "Splice"
	FrontPortTypeLabelTERA1P    FrontPortTypeLabel = "TERA 1P"
	FrontPortTypeLabelTERA2P    FrontPortTypeLabel = "TERA 2P"
	FrontPortTypeLabelTERA4P    FrontPortTypeLabel = "TERA 4P"
	FrontPortTypeLabelURMP2     FrontPortTypeLabel = "URM-P2"
	FrontPortTypeLabelURMP4     FrontPortTypeLabel = "URM-P4"
	FrontPortTypeLabelURMP8     FrontPortTypeLabel = "URM-P8"
)

// Defines values for FrontPortTypeValue.
const (
	FrontPortTypeValueBnc       FrontPortTypeValue = "bnc"
	FrontPortTypeValueCs        FrontPortTypeValue = "cs"
	FrontPortTypeValueFc        FrontPortTypeValue = "fc"
	FrontPortTypeValueGg45      FrontPortTypeValue = "gg45"
	FrontPortTypeValueLc        FrontPortTypeValue = "lc"
	FrontPortTypeValueLcApc     FrontPortTypeValue = "lc-apc"
	FrontPortTypeValueLsh       FrontPortTypeValue = "lsh"
	FrontPortTypeValueLshApc    FrontPortTypeValue = "lsh-apc"
	FrontPortTypeValueMpo       FrontPortTypeValue = "mpo"
	FrontPortTypeValueMrj21     FrontPortTypeValue = "mrj21"
	FrontPortTypeValueMtrj      FrontPortTypeValue = "mtrj"
	FrontPortTypeValueN110Punch FrontPortTypeValue = "110-punch"
	FrontPortTypeValueN8p2c     FrontPortTypeValue = "8p2c"
	FrontPortTypeValueN8p4c     FrontPortTypeValue = "8p4c"
	FrontPortTypeValueN8p6c     FrontPortTypeValue = "8p6c"
	FrontPortTypeValueN8p8c     FrontPortTypeValue = "8p8c"
	FrontPortTypeValueSc        FrontPortTypeValue = "sc"
	FrontPortTypeValueScApc     FrontPortTypeValue = "sc-apc"
	FrontPortTypeValueSn        FrontPortTypeValue = "sn"
	FrontPortTypeValueSplice    FrontPortTypeValue = "splice"
	FrontPortTypeValueSt        FrontPortTypeValue = "st"
	FrontPortTypeValueTera1p    FrontPortTypeValue = "tera-1p"
	FrontPortTypeValueTera2p    FrontPortTypeValue = "tera-2p"
	FrontPortTypeValueTera4p    FrontPortTypeValue = "tera-4p"
	FrontPortTypeValueUrmP2     FrontPortTypeValue = "urm-p2"
	FrontPortTypeValueUrmP4     FrontPortTypeValue = "urm-p4"
	FrontPortTypeValueUrmP8     FrontPortTypeValue = "urm-p8"
)

// Defines values for FrontPortTemplateTypeLabel.
const (
	FrontPortTemplateTypeLabelBNC       FrontPortTemplateTypeLabel = "BNC"
	FrontPortTemplateTypeLabelCS        FrontPortTemplateTypeLabel = "CS"
	FrontPortTemplateTypeLabelFC        FrontPortTemplateTypeLabel = "FC"
	FrontPortTemplateTypeLabelGG45      FrontPortTemplateTypeLabel = "GG45"
	FrontPortTemplateTypeLabelLC        FrontPortTemplateTypeLabel = "LC"
	FrontPortTemplateTypeLabelLCAPC     FrontPortTemplateTypeLabel = "LC/APC"
	FrontPortTemplateTypeLabelLSH       FrontPortTemplateTypeLabel = "LSH"
	FrontPortTemplateTypeLabelLSHAPC    FrontPortTemplateTypeLabel = "LSH/APC"
	FrontPortTemplateTypeLabelMPO       FrontPortTemplateTypeLabel = "MPO"
	FrontPortTemplateTypeLabelMRJ21     FrontPortTemplateTypeLabel = "MRJ21"
	FrontPortTemplateTypeLabelMTRJ      FrontPortTemplateTypeLabel = "MTRJ"
	FrontPortTemplateTypeLabelN110Punch FrontPortTemplateTypeLabel = "110 Punch"
	FrontPortTemplateTypeLabelN8P2C     FrontPortTemplateTypeLabel = "8P2C"
	FrontPortTemplateTypeLabelN8P4C     FrontPortTemplateTypeLabel = "8P4C"
	FrontPortTemplateTypeLabelN8P6C     FrontPortTemplateTypeLabel = "8P6C"
	FrontPortTemplateTypeLabelN8P8C     FrontPortTemplateTypeLabel = "8P8C"
	FrontPortTemplateTypeLabelSC        FrontPortTemplateTypeLabel = "SC"
	FrontPortTemplateTypeLabelSCAPC     FrontPortTemplateTypeLabel = "SC/APC"
	FrontPortTemplateTypeLabelSN        FrontPortTemplateTypeLabel = "SN"
	FrontPortTemplateTypeLabelST        FrontPortTemplateTypeLabel = "ST"
	FrontPortTemplateTypeLabelSplice    FrontPortTemplateTypeLabel = "Splice"
	FrontPortTemplateTypeLabelTERA1P    FrontPortTemplateTypeLabel = "TERA 1P"
	FrontPortTemplateTypeLabelTERA2P    FrontPortTemplateTypeLabel = "TERA 2P"
	FrontPortTemplateTypeLabelTERA4P    FrontPortTemplateTypeLabel = "TERA 4P"
	FrontPortTemplateTypeLabelURMP2     FrontPortTemplateTypeLabel = "URM-P2"
	FrontPortTemplateTypeLabelURMP4     FrontPortTemplateTypeLabel = "URM-P4"
	FrontPortTemplateTypeLabelURMP8     FrontPortTemplateTypeLabel = "URM-P8"
)

// Defines values for FrontPortTemplateTypeValue.
const (
	FrontPortTemplateTypeValueBnc       FrontPortTemplateTypeValue = "bnc"
	FrontPortTemplateTypeValueCs        FrontPortTemplateTypeValue = "cs"
	FrontPortTemplateTypeValueFc        FrontPortTemplateTypeValue = "fc"
	FrontPortTemplateTypeValueGg45      FrontPortTemplateTypeValue = "gg45"
	FrontPortTemplateTypeValueLc        FrontPortTemplateTypeValue = "lc"
	FrontPortTemplateTypeValueLcApc     FrontPortTemplateTypeValue = "lc-apc"
	FrontPortTemplateTypeValueLsh       FrontPortTemplateTypeValue = "lsh"
	FrontPortTemplateTypeValueLshApc    FrontPortTemplateTypeValue = "lsh-apc"
	FrontPortTemplateTypeValueMpo       FrontPortTemplateTypeValue = "mpo"
	FrontPortTemplateTypeValueMrj21     FrontPortTemplateTypeValue = "mrj21"
	FrontPortTemplateTypeValueMtrj      FrontPortTemplateTypeValue = "mtrj"
	FrontPortTemplateTypeValueN110Punch FrontPortTemplateTypeValue = "110-punch"
	FrontPortTemplateTypeValueN8p2c     FrontPortTemplateTypeValue = "8p2c"
	FrontPortTemplateTypeValueN8p4c     FrontPortTemplateTypeValue = "8p4c"
	FrontPortTemplateTypeValueN8p6c     FrontPortTemplateTypeValue = "8p6c"
	FrontPortTemplateTypeValueN8p8c     FrontPortTemplateTypeValue = "8p8c"
	FrontPortTemplateTypeValueSc        FrontPortTemplateTypeValue = "sc"
	FrontPortTemplateTypeValueScApc     FrontPortTemplateTypeValue = "sc-apc"
	FrontPortTemplateTypeValueSn        FrontPortTemplateTypeValue = "sn"
	FrontPortTemplateTypeValueSplice    FrontPortTemplateTypeValue = "splice"
	FrontPortTemplateTypeValueSt        FrontPortTemplateTypeValue = "st"
	FrontPortTemplateTypeValueTera1p    FrontPortTemplateTypeValue = "tera-1p"
	FrontPortTemplateTypeValueTera2p    FrontPortTemplateTypeValue = "tera-2p"
	FrontPortTemplateTypeValueTera4p    FrontPortTemplateTypeValue = "tera-4p"
	FrontPortTemplateTypeValueUrmP2     FrontPortTemplateTypeValue = "urm-p2"
	FrontPortTemplateTypeValueUrmP4     FrontPortTemplateTypeValue = "urm-p4"
	FrontPortTemplateTypeValueUrmP8     FrontPortTemplateTypeValue = "urm-p8"
)

// Defines values for GrantTypeEnum.
const (
	GrantTypeEnumChannel      GrantTypeEnum = "channel"
	GrantTypeEnumOrganization GrantTypeEnum = "organization"
	GrantTypeEnumUser         GrantTypeEnum = "user"
)

// Defines values for HttpMethodEnum.
const (
	DELETE HttpMethodEnum = "DELETE"
	GET    HttpMethodEnum = "GET"
	PATCH  HttpMethodEnum = "PATCH"
	POST   HttpMethodEnum = "POST"
	PUT    HttpMethodEnum = "PUT"
)

// Defines values for IPAddressFamilyLabel.
const (
	IPAddressFamilyLabelIPv4 IPAddressFamilyLabel = "IPv4"
	IPAddressFamilyLabelIPv6 IPAddressFamilyLabel = "IPv6"
)

// Defines values for IPAddressFamilyValue.
const (
	IPAddressFamilyValueN4 IPAddressFamilyValue = 4
	IPAddressFamilyValueN6 IPAddressFamilyValue = 6
)

// Defines values for IPAddressRoleLabel.
const (
	IPAddressRoleLabelAnycast   IPAddressRoleLabel = "Anycast"
	IPAddressRoleLabelCARP      IPAddressRoleLabel = "CARP"
	IPAddressRoleLabelGLBP      IPAddressRoleLabel = "GLBP"
	IPAddressRoleLabelHSRP      IPAddressRoleLabel = "HSRP"
	IPAddressRoleLabelLoopback  IPAddressRoleLabel = "Loopback"
	IPAddressRoleLabelSecondary IPAddressRoleLabel = "Secondary"
	IPAddressRoleLabelVIP       IPAddressRoleLabel = "VIP"
	IPAddressRoleLabelVRRP      IPAddressRoleLabel = "VRRP"
)

// Defines values for IPAddressRoleValue.
const (
	IPAddressRoleValueAnycast   IPAddressRoleValue = "anycast"
	IPAddressRoleValueCarp      IPAddressRoleValue = "carp"
	IPAddressRoleValueGlbp      IPAddressRoleValue = "glbp"
	IPAddressRoleValueHsrp      IPAddressRoleValue = "hsrp"
	IPAddressRoleValueLoopback  IPAddressRoleValue = "loopback"
	IPAddressRoleValueSecondary IPAddressRoleValue = "secondary"
	IPAddressRoleValueVip       IPAddressRoleValue = "vip"
	IPAddressRoleValueVrrp      IPAddressRoleValue = "vrrp"
)

// Defines values for IPAddressStatusLabel.
const (
	IPAddressStatusLabelActive     IPAddressStatusLabel = "Active"
	IPAddressStatusLabelDHCP       IPAddressStatusLabel = "DHCP"
	IPAddressStatusLabelDeprecated IPAddressStatusLabel = "Deprecated"
	IPAddressStatusLabelReserved   IPAddressStatusLabel = "Reserved"
	IPAddressStatusLabelSLAAC      IPAddressStatusLabel = "SLAAC"
)

// Defines values for IPAddressStatusValue.
const (
	IPAddressStatusValueActive     IPAddressStatusValue = "active"
	IPAddressStatusValueDeprecated IPAddressStatusValue = "deprecated"
	IPAddressStatusValueDhcp       IPAddressStatusValue = "dhcp"
	IPAddressStatusValueReserved   IPAddressStatusValue = "reserved"
	IPAddressStatusValueSlaac      IPAddressStatusValue = "slaac"
)

// Defines values for IPAddressStatusChoices.
const (
	IPAddressStatusChoicesActive     IPAddressStatusChoices = "active"
	IPAddressStatusChoicesDeprecated IPAddressStatusChoices = "deprecated"
	IPAddressStatusChoicesDhcp       IPAddressStatusChoices = "dhcp"
	IPAddressStatusChoicesReserved   IPAddressStatusChoices = "reserved"
	IPAddressStatusChoicesSlaac      IPAddressStatusChoices = "slaac"
)

// Defines values for IPRangeStatusLabel.
const (
	IPRangeStatusLabelActive         IPRangeStatusLabel = "Active"
	IPRangeStatusLabelDecommissioned IPRangeStatusLabel = "Decommissioned"
	IPRangeStatusLabelStaged         IPRangeStatusLabel = "Staged"
)

// Defines values for IPRangeStatusValue.
const (
	IPRangeStatusValueActive         IPRangeStatusValue = "active"
	IPRangeStatusValueDecommissioned IPRangeStatusValue = "decommissioned"
	IPRangeStatusValueStaged         IPRangeStatusValue = "staged"
)

// Defines values for ImpactEnum.
const (
	DEGRADED          ImpactEnum = "DEGRADED"
	NOIMPACT          ImpactEnum = "NO-IMPACT"
	OUTAGE            ImpactEnum = "OUTAGE"
	REDUCEDREDUNDANCY ImpactEnum = "REDUCED-REDUNDANCY"
)

// Defines values for InterfaceModeLabel.
const (
	InterfaceModeLabelAccess    InterfaceModeLabel = "Access"
	InterfaceModeLabelTagged    InterfaceModeLabel = "Tagged"
	InterfaceModeLabelTaggedAll InterfaceModeLabel = "Tagged (All)"
)

// Defines values for InterfaceModeValue.
const (
	InterfaceModeValueAccess    InterfaceModeValue = "access"
	InterfaceModeValueTagged    InterfaceModeValue = "tagged"
	InterfaceModeValueTaggedAll InterfaceModeValue = "tagged-all"
)

// Defines values for InterfaceStatusLabel.
const (
	InterfaceStatusLabelActive          InterfaceStatusLabel = "Active"
	InterfaceStatusLabelDecommissioning InterfaceStatusLabel = "Decommissioning"
	InterfaceStatusLabelFailed          InterfaceStatusLabel = "Failed"
	InterfaceStatusLabelMaintenance     InterfaceStatusLabel = "Maintenance"
	InterfaceStatusLabelPlanned         InterfaceStatusLabel = "Planned"
)

// Defines values for InterfaceStatusValue.
const (
	InterfaceStatusValueActive          InterfaceStatusValue = "active"
	InterfaceStatusValueDecommissioning InterfaceStatusValue = "decommissioning"
	InterfaceStatusValueFailed          InterfaceStatusValue = "failed"
	InterfaceStatusValueMaintenance     InterfaceStatusValue = "maintenance"
	InterfaceStatusValuePlanned         InterfaceStatusValue = "planned"
)

// Defines values for InterfaceTypeLabel.
const (
	InterfaceTypeLabelBridge                  InterfaceTypeLabel = "Bridge"
	InterfaceTypeLabelCDMA                    InterfaceTypeLabel = "CDMA"
	InterfaceTypeLabelCFP100GE                InterfaceTypeLabel = "CFP (100GE)"
	InterfaceTypeLabelCFP2100GE               InterfaceTypeLabel = "CFP2 (100GE)"
	InterfaceTypeLabelCFP2200GE               InterfaceTypeLabel = "CFP2 (200GE)"
	InterfaceTypeLabelCFP4100GE               InterfaceTypeLabel = "CFP4 (100GE)"
	InterfaceTypeLabelCiscoCPAK100GE          InterfaceTypeLabel = "Cisco CPAK (100GE)"
	InterfaceTypeLabelCiscoFlexStack          InterfaceTypeLabel = "Cisco FlexStack"
	InterfaceTypeLabelCiscoFlexStackPlus      InterfaceTypeLabel = "Cisco FlexStack Plus"
	InterfaceTypeLabelCiscoStackWise          InterfaceTypeLabel = "Cisco StackWise"
	InterfaceTypeLabelCiscoStackWisePlus      InterfaceTypeLabel = "Cisco StackWise Plus"
	InterfaceTypeLabelDDR4Gbps                InterfaceTypeLabel = "DDR (4 Gbps)"
	InterfaceTypeLabelE12048Mbps              InterfaceTypeLabel = "E1 (2.048 Mbps)"
	InterfaceTypeLabelE334Mbps                InterfaceTypeLabel = "E3 (34 Mbps)"
	InterfaceTypeLabelEDR25Gbps               InterfaceTypeLabel = "EDR (25 Gbps)"
	InterfaceTypeLabelExtremeSummitStack      InterfaceTypeLabel = "Extreme SummitStack"
	InterfaceTypeLabelExtremeSummitStack128   InterfaceTypeLabel = "Extreme SummitStack-128"
	InterfaceTypeLabelExtremeSummitStack256   InterfaceTypeLabel = "Extreme SummitStack-256"
	InterfaceTypeLabelExtremeSummitStack512   InterfaceTypeLabel = "Extreme SummitStack-512"
	InterfaceTypeLabelFDR1010Gbps             InterfaceTypeLabel = "FDR10 (10 Gbps)"
	InterfaceTypeLabelFDR135Gbps              InterfaceTypeLabel = "FDR (13.5 Gbps)"
	InterfaceTypeLabelGBIC1GE                 InterfaceTypeLabel = "GBIC (1GE)"
	InterfaceTypeLabelGSM                     InterfaceTypeLabel = "GSM"
	InterfaceTypeLabelHDR50Gbps               InterfaceTypeLabel = "HDR (50 Gbps)"
	InterfaceTypeLabelIEEE80211a              InterfaceTypeLabel = "IEEE 802.11a"
	InterfaceTypeLabelIEEE80211ac             InterfaceTypeLabel = "IEEE 802.11ac"
	InterfaceTypeLabelIEEE80211ad             InterfaceTypeLabel = "IEEE 802.11ad"
	InterfaceTypeLabelIEEE80211ax             InterfaceTypeLabel = "IEEE 802.11ax"
	InterfaceTypeLabelIEEE80211bg             InterfaceTypeLabel = "IEEE 802.11b/g"
	InterfaceTypeLabelIEEE80211n              InterfaceTypeLabel = "IEEE 802.11n"
	InterfaceTypeLabelJuniperVCP              InterfaceTypeLabel = "Juniper VCP"
	InterfaceTypeLabelLTE                     InterfaceTypeLabel = "LTE"
	InterfaceTypeLabelLinkAggregationGroupLAG InterfaceTypeLabel = "Link Aggregation Group (LAG)"
	InterfaceTypeLabelN1000BASET1GE           InterfaceTypeLabel = "1000BASE-T (1GE)"
	InterfaceTypeLabelN100BASETX10100ME       InterfaceTypeLabel = "100BASE-TX (10/100ME)"
	InterfaceTypeLabelN10GBASECX410GE         InterfaceTypeLabel = "10GBASE-CX4 (10GE)"
	InterfaceTypeLabelN10GBASET10GE           InterfaceTypeLabel = "10GBASE-T (10GE)"
	InterfaceTypeLabelN25GBASET25GE           InterfaceTypeLabel = "2.5GBASE-T (2.5GE)"
	InterfaceTypeLabelN5GBASET5GE             InterfaceTypeLabel = "5GBASE-T (5GE)"
	InterfaceTypeLabelNDR100Gbps              InterfaceTypeLabel = "NDR (100 Gbps)"
	InterfaceTypeLabelOC12STM4                InterfaceTypeLabel = "OC-12/STM-4"
	InterfaceTypeLabelOC1920STM640            InterfaceTypeLabel = "OC-1920/STM-640"
	InterfaceTypeLabelOC192STM64              InterfaceTypeLabel = "OC-192/STM-64"
	InterfaceTypeLabelOC3840STM1234           InterfaceTypeLabel = "OC-3840/STM-1234"
	InterfaceTypeLabelOC3STM1                 InterfaceTypeLabel = "OC-3/STM-1"
	InterfaceTypeLabelOC48STM16               InterfaceTypeLabel = "OC-48/STM-16"
	InterfaceTypeLabelOC768STM256             InterfaceTypeLabel = "OC-768/STM-256"
	InterfaceTypeLabelOSFP400GE               InterfaceTypeLabel = "OSFP (400GE)"
	InterfaceTypeLabelOther                   InterfaceTypeLabel = "Other"
	InterfaceTypeLabelQDR8Gbps                InterfaceTypeLabel = "QDR (8 Gbps)"
	InterfaceTypeLabelQSFP28100GE             InterfaceTypeLabel = "QSFP28 (100GE)"
	InterfaceTypeLabelQSFP28128GFC            InterfaceTypeLabel = "QSFP28 (128GFC)"
	InterfaceTypeLabelQSFP2850GE              InterfaceTypeLabel = "QSFP28 (50GE)"
	InterfaceTypeLabelQSFP40GE                InterfaceTypeLabel = "QSFP+ (40GE)"
	InterfaceTypeLabelQSFP56200GE             InterfaceTypeLabel = "QSFP56 (200GE)"
	InterfaceTypeLabelQSFP64GFC               InterfaceTypeLabel = "QSFP+ (64GFC)"
	InterfaceTypeLabelQSFPDD400GE             InterfaceTypeLabel = "QSFP-DD (400GE)"
	InterfaceTypeLabelSDR2Gbps                InterfaceTypeLabel = "SDR (2 Gbps)"
	InterfaceTypeLabelSFP10GE                 InterfaceTypeLabel = "SFP+ (10GE)"
	InterfaceTypeLabelSFP16GFC                InterfaceTypeLabel = "SFP+ (16GFC)"
	InterfaceTypeLabelSFP1GE                  InterfaceTypeLabel = "SFP (1GE)"
	InterfaceTypeLabelSFP1GFC                 InterfaceTypeLabel = "SFP (1GFC)"
	InterfaceTypeLabelSFP2825GE               InterfaceTypeLabel = "SFP28 (25GE)"
	InterfaceTypeLabelSFP2832GFC              InterfaceTypeLabel = "SFP28 (32GFC)"
	InterfaceTypeLabelSFP2GFC                 InterfaceTypeLabel = "SFP (2GFC)"
	InterfaceTypeLabelSFP4GFC                 InterfaceTypeLabel = "SFP (4GFC)"
	InterfaceTypeLabelSFP8GFC                 InterfaceTypeLabel = "SFP+ (8GFC)"
	InterfaceTypeLabelT11544Mbps              InterfaceTypeLabel = "T1 (1.544 Mbps)"
	InterfaceTypeLabelT345Mbps                InterfaceTypeLabel = "T3 (45 Mbps)"
	InterfaceTypeLabelVirtual                 InterfaceTypeLabel = "Virtual"
	InterfaceTypeLabelX210GE                  InterfaceTypeLabel = "X2 (10GE)"
	InterfaceTypeLabelXDR250Gbps              InterfaceTypeLabel = "XDR (250 Gbps)"
	InterfaceTypeLabelXENPAK10GE              InterfaceTypeLabel = "XENPAK (10GE)"
	InterfaceTypeLabelXFP10GE                 InterfaceTypeLabel = "XFP (10GE)"
)

// Defines values for InterfaceTypeValue.
const (
	InterfaceTypeValueBridge                InterfaceTypeValue = "bridge"
	InterfaceTypeValueCdma                  InterfaceTypeValue = "cdma"
	InterfaceTypeValueCiscoFlexstack        InterfaceTypeValue = "cisco-flexstack"
	InterfaceTypeValueCiscoFlexstackPlus    InterfaceTypeValue = "cisco-flexstack-plus"
	InterfaceTypeValueCiscoStackwise        InterfaceTypeValue = "cisco-stackwise"
	InterfaceTypeValueCiscoStackwisePlus    InterfaceTypeValue = "cisco-stackwise-plus"
	InterfaceTypeValueE1                    InterfaceTypeValue = "e1"
	InterfaceTypeValueE3                    InterfaceTypeValue = "e3"
	InterfaceTypeValueExtremeSummitstack    InterfaceTypeValue = "extreme-summitstack"
	InterfaceTypeValueExtremeSummitstack128 InterfaceTypeValue = "extreme-summitstack-128"
	InterfaceTypeValueExtremeSummitstack256 InterfaceTypeValue = "extreme-summitstack-256"
	InterfaceTypeValueExtremeSummitstack512 InterfaceTypeValue = "extreme-summitstack-512"
	InterfaceTypeValueGsm                   InterfaceTypeValue = "gsm"
	InterfaceTypeValueIeee80211a            InterfaceTypeValue = "ieee802.11a"
	InterfaceTypeValueIeee80211ac           InterfaceTypeValue = "ieee802.11ac"
	InterfaceTypeValueIeee80211ad           InterfaceTypeValue = "ieee802.11ad"
	InterfaceTypeValueIeee80211ax           InterfaceTypeValue = "ieee802.11ax"
	InterfaceTypeValueIeee80211g            InterfaceTypeValue = "ieee802.11g"
	InterfaceTypeValueIeee80211n            InterfaceTypeValue = "ieee802.11n"
	InterfaceTypeValueInfinibandDdr         InterfaceTypeValue = "infiniband-ddr"
	InterfaceTypeValueInfinibandEdr         InterfaceTypeValue = "infiniband-edr"
	InterfaceTypeValueInfinibandFdr         InterfaceTypeValue = "infiniband-fdr"
	InterfaceTypeValueInfinibandFdr10       InterfaceTypeValue = "infiniband-fdr10"
	InterfaceTypeValueInfinibandHdr         InterfaceTypeValue = "infiniband-hdr"
	InterfaceTypeValueInfinibandNdr         InterfaceTypeValue = "infiniband-ndr"
	InterfaceTypeValueInfinibandQdr         InterfaceTypeValue = "infiniband-qdr"
	InterfaceTypeValueInfinibandSdr         InterfaceTypeValue = "infiniband-sdr"
	InterfaceTypeValueInfinibandXdr         InterfaceTypeValue = "infiniband-xdr"
	InterfaceTypeValueJuniperVcp            InterfaceTypeValue = "juniper-vcp"
	InterfaceTypeValueLag                   InterfaceTypeValue = "lag"
	InterfaceTypeValueLte                   InterfaceTypeValue = "lte"
	InterfaceTypeValueN1000baseT            InterfaceTypeValue = "1000base-t"
	InterfaceTypeValueN1000baseXGbic        InterfaceTypeValue = "1000base-x-gbic"
	InterfaceTypeValueN1000baseXSfp         InterfaceTypeValue = "1000base-x-sfp"
	InterfaceTypeValueN100baseTx            InterfaceTypeValue = "100base-tx"
	InterfaceTypeValueN100gbaseXCfp         InterfaceTypeValue = "100gbase-x-cfp"
	InterfaceTypeValueN100gbaseXCfp2        InterfaceTypeValue = "100gbase-x-cfp2"
	InterfaceTypeValueN100gbaseXCfp4        InterfaceTypeValue = "100gbase-x-cfp4"
	InterfaceTypeValueN100gbaseXCpak        InterfaceTypeValue = "100gbase-x-cpak"
	InterfaceTypeValueN100gbaseXQsfp28      InterfaceTypeValue = "100gbase-x-qsfp28"
	InterfaceTypeValueN10gbaseCx4           InterfaceTypeValue = "10gbase-cx4"
	InterfaceTypeValueN10gbaseT             InterfaceTypeValue = "10gbase-t"
	InterfaceTypeValueN10gbaseXSfpp         InterfaceTypeValue = "10gbase-x-sfpp"
	InterfaceTypeValueN10gbaseXX2           InterfaceTypeValue = "10gbase-x-x2"
	InterfaceTypeValueN10gbaseXXenpak       InterfaceTypeValue = "10gbase-x-xenpak"
	InterfaceTypeValueN10gbaseXXfp          InterfaceTypeValue = "10gbase-x-xfp"
	InterfaceTypeValueN128gfcSfp28          InterfaceTypeValue = "128gfc-sfp28"
	InterfaceTypeValueN16gfcSfpp            InterfaceTypeValue = "16gfc-sfpp"
	InterfaceTypeValueN1gfcSfp              InterfaceTypeValue = "1gfc-sfp"
	InterfaceTypeValueN200gbaseXCfp2        InterfaceTypeValue = "200gbase-x-cfp2"
	InterfaceTypeValueN200gbaseXQsfp56      InterfaceTypeValue = "200gbase-x-qsfp56"
	InterfaceTypeValueN25gbaseT             InterfaceTypeValue = "2.5gbase-t"
	InterfaceTypeValueN25gbaseXSfp28        InterfaceTypeValue = "25gbase-x-sfp28"
	InterfaceTypeValueN2gfcSfp              InterfaceTypeValue = "2gfc-sfp"
	InterfaceTypeValueN32gfcSfp28           InterfaceTypeValue = "32gfc-sfp28"
	InterfaceTypeValueN400gbaseXOsfp        InterfaceTypeValue = "400gbase-x-osfp"
	InterfaceTypeValueN400gbaseXQsfpdd      InterfaceTypeValue = "400gbase-x-qsfpdd"
	InterfaceTypeValueN40gbaseXQsfpp        InterfaceTypeValue = "40gbase-x-qsfpp"
	InterfaceTypeValueN4gfcSfp              InterfaceTypeValue = "4gfc-sfp"
	InterfaceTypeValueN50gbaseXSfp28        InterfaceTypeValue = "50gbase-x-sfp28"
	InterfaceTypeValueN5gbaseT              InterfaceTypeValue = "5gbase-t"
	InterfaceTypeValueN64gfcQsfpp           InterfaceTypeValue = "64gfc-qsfpp"
	InterfaceTypeValueN8gfcSfpp             InterfaceTypeValue = "8gfc-sfpp"
	InterfaceTypeValueOther                 InterfaceTypeValue = "other"
	InterfaceTypeValueSonetOc12             InterfaceTypeValue = "sonet-oc12"
	InterfaceTypeValueSonetOc192            InterfaceTypeValue = "sonet-oc192"
	InterfaceTypeValueSonetOc1920           InterfaceTypeValue = "sonet-oc1920"
	InterfaceTypeValueSonetOc3              InterfaceTypeValue = "sonet-oc3"
	InterfaceTypeValueSonetOc3840           InterfaceTypeValue = "sonet-oc3840"
	InterfaceTypeValueSonetOc48             InterfaceTypeValue = "sonet-oc48"
	InterfaceTypeValueSonetOc768            InterfaceTypeValue = "sonet-oc768"
	InterfaceTypeValueT1                    InterfaceTypeValue = "t1"
	InterfaceTypeValueT3                    InterfaceTypeValue = "t3"
	InterfaceTypeValueVirtual               InterfaceTypeValue = "virtual"
)

// Defines values for InterfaceSerializerVersion12ModeLabel.
const (
	InterfaceSerializerVersion12ModeLabelAccess    InterfaceSerializerVersion12ModeLabel = "Access"
	InterfaceSerializerVersion12ModeLabelTagged    InterfaceSerializerVersion12ModeLabel = "Tagged"
	InterfaceSerializerVersion12ModeLabelTaggedAll InterfaceSerializerVersion12ModeLabel = "Tagged (All)"
)

// Defines values for InterfaceSerializerVersion12ModeValue.
const (
	InterfaceSerializerVersion12ModeValueAccess    InterfaceSerializerVersion12ModeValue = "access"
	InterfaceSerializerVersion12ModeValueTagged    InterfaceSerializerVersion12ModeValue = "tagged"
	InterfaceSerializerVersion12ModeValueTaggedAll InterfaceSerializerVersion12ModeValue = "tagged-all"
)

// Defines values for InterfaceSerializerVersion12TypeLabel.
const (
	InterfaceSerializerVersion12TypeLabelBridge                  InterfaceSerializerVersion12TypeLabel = "Bridge"
	InterfaceSerializerVersion12TypeLabelCDMA                    InterfaceSerializerVersion12TypeLabel = "CDMA"
	InterfaceSerializerVersion12TypeLabelCFP100GE                InterfaceSerializerVersion12TypeLabel = "CFP (100GE)"
	InterfaceSerializerVersion12TypeLabelCFP2100GE               InterfaceSerializerVersion12TypeLabel = "CFP2 (100GE)"
	InterfaceSerializerVersion12TypeLabelCFP2200GE               InterfaceSerializerVersion12TypeLabel = "CFP2 (200GE)"
	InterfaceSerializerVersion12TypeLabelCFP4100GE               InterfaceSerializerVersion12TypeLabel = "CFP4 (100GE)"
	InterfaceSerializerVersion12TypeLabelCiscoCPAK100GE          InterfaceSerializerVersion12TypeLabel = "Cisco CPAK (100GE)"
	InterfaceSerializerVersion12TypeLabelCiscoFlexStack          InterfaceSerializerVersion12TypeLabel = "Cisco FlexStack"
	InterfaceSerializerVersion12TypeLabelCiscoFlexStackPlus      InterfaceSerializerVersion12TypeLabel = "Cisco FlexStack Plus"
	InterfaceSerializerVersion12TypeLabelCiscoStackWise          InterfaceSerializerVersion12TypeLabel = "Cisco StackWise"
	InterfaceSerializerVersion12TypeLabelCiscoStackWisePlus      InterfaceSerializerVersion12TypeLabel = "Cisco StackWise Plus"
	InterfaceSerializerVersion12TypeLabelDDR4Gbps                InterfaceSerializerVersion12TypeLabel = "DDR (4 Gbps)"
	InterfaceSerializerVersion12TypeLabelE12048Mbps              InterfaceSerializerVersion12TypeLabel = "E1 (2.048 Mbps)"
	InterfaceSerializerVersion12TypeLabelE334Mbps                InterfaceSerializerVersion12TypeLabel = "E3 (34 Mbps)"
	InterfaceSerializerVersion12TypeLabelEDR25Gbps               InterfaceSerializerVersion12TypeLabel = "EDR (25 Gbps)"
	InterfaceSerializerVersion12TypeLabelExtremeSummitStack      InterfaceSerializerVersion12TypeLabel = "Extreme SummitStack"
	InterfaceSerializerVersion12TypeLabelExtremeSummitStack128   InterfaceSerializerVersion12TypeLabel = "Extreme SummitStack-128"
	InterfaceSerializerVersion12TypeLabelExtremeSummitStack256   InterfaceSerializerVersion12TypeLabel = "Extreme SummitStack-256"
	InterfaceSerializerVersion12TypeLabelExtremeSummitStack512   InterfaceSerializerVersion12TypeLabel = "Extreme SummitStack-512"
	InterfaceSerializerVersion12TypeLabelFDR1010Gbps             InterfaceSerializerVersion12TypeLabel = "FDR10 (10 Gbps)"
	InterfaceSerializerVersion12TypeLabelFDR135Gbps              InterfaceSerializerVersion12TypeLabel = "FDR (13.5 Gbps)"
	InterfaceSerializerVersion12TypeLabelGBIC1GE                 InterfaceSerializerVersion12TypeLabel = "GBIC (1GE)"
	InterfaceSerializerVersion12TypeLabelGSM                     InterfaceSerializerVersion12TypeLabel = "GSM"
	InterfaceSerializerVersion12TypeLabelHDR50Gbps               InterfaceSerializerVersion12TypeLabel = "HDR (50 Gbps)"
	InterfaceSerializerVersion12TypeLabelIEEE80211a              InterfaceSerializerVersion12TypeLabel = "IEEE 802.11a"
	InterfaceSerializerVersion12TypeLabelIEEE80211ac             InterfaceSerializerVersion12TypeLabel = "IEEE 802.11ac"
	InterfaceSerializerVersion12TypeLabelIEEE80211ad             InterfaceSerializerVersion12TypeLabel = "IEEE 802.11ad"
	InterfaceSerializerVersion12TypeLabelIEEE80211ax             InterfaceSerializerVersion12TypeLabel = "IEEE 802.11ax"
	InterfaceSerializerVersion12TypeLabelIEEE80211bg             InterfaceSerializerVersion12TypeLabel = "IEEE 802.11b/g"
	InterfaceSerializerVersion12TypeLabelIEEE80211n              InterfaceSerializerVersion12TypeLabel = "IEEE 802.11n"
	InterfaceSerializerVersion12TypeLabelJuniperVCP              InterfaceSerializerVersion12TypeLabel = "Juniper VCP"
	InterfaceSerializerVersion12TypeLabelLTE                     InterfaceSerializerVersion12TypeLabel = "LTE"
	InterfaceSerializerVersion12TypeLabelLinkAggregationGroupLAG InterfaceSerializerVersion12TypeLabel = "Link Aggregation Group (LAG)"
	InterfaceSerializerVersion12TypeLabelN1000BASET1GE           InterfaceSerializerVersion12TypeLabel = "1000BASE-T (1GE)"
	InterfaceSerializerVersion12TypeLabelN100BASETX10100ME       InterfaceSerializerVersion12TypeLabel = "100BASE-TX (10/100ME)"
	InterfaceSerializerVersion12TypeLabelN10GBASECX410GE         InterfaceSerializerVersion12TypeLabel = "10GBASE-CX4 (10GE)"
	InterfaceSerializerVersion12TypeLabelN10GBASET10GE           InterfaceSerializerVersion12TypeLabel = "10GBASE-T (10GE)"
	InterfaceSerializerVersion12TypeLabelN25GBASET25GE           InterfaceSerializerVersion12TypeLabel = "2.5GBASE-T (2.5GE)"
	InterfaceSerializerVersion12TypeLabelN5GBASET5GE             InterfaceSerializerVersion12TypeLabel = "5GBASE-T (5GE)"
	InterfaceSerializerVersion12TypeLabelNDR100Gbps              InterfaceSerializerVersion12TypeLabel = "NDR (100 Gbps)"
	InterfaceSerializerVersion12TypeLabelOC12STM4                InterfaceSerializerVersion12TypeLabel = "OC-12/STM-4"
	InterfaceSerializerVersion12TypeLabelOC1920STM640            InterfaceSerializerVersion12TypeLabel = "OC-1920/STM-640"
	InterfaceSerializerVersion12TypeLabelOC192STM64              InterfaceSerializerVersion12TypeLabel = "OC-192/STM-64"
	InterfaceSerializerVersion12TypeLabelOC3840STM1234           InterfaceSerializerVersion12TypeLabel = "OC-3840/STM-1234"
	InterfaceSerializerVersion12TypeLabelOC3STM1                 InterfaceSerializerVersion12TypeLabel = "OC-3/STM-1"
	InterfaceSerializerVersion12TypeLabelOC48STM16               InterfaceSerializerVersion12TypeLabel = "OC-48/STM-16"
	InterfaceSerializerVersion12TypeLabelOC768STM256             InterfaceSerializerVersion12TypeLabel = "OC-768/STM-256"
	InterfaceSerializerVersion12TypeLabelOSFP400GE               InterfaceSerializerVersion12TypeLabel = "OSFP (400GE)"
	InterfaceSerializerVersion12TypeLabelOther                   InterfaceSerializerVersion12TypeLabel = "Other"
	InterfaceSerializerVersion12TypeLabelQDR8Gbps                InterfaceSerializerVersion12TypeLabel = "QDR (8 Gbps)"
	InterfaceSerializerVersion12TypeLabelQSFP28100GE             InterfaceSerializerVersion12TypeLabel = "QSFP28 (100GE)"
	InterfaceSerializerVersion12TypeLabelQSFP28128GFC            InterfaceSerializerVersion12TypeLabel = "QSFP28 (128GFC)"
	InterfaceSerializerVersion12TypeLabelQSFP2850GE              InterfaceSerializerVersion12TypeLabel = "QSFP28 (50GE)"
	InterfaceSerializerVersion12TypeLabelQSFP40GE                InterfaceSerializerVersion12TypeLabel = "QSFP+ (40GE)"
	InterfaceSerializerVersion12TypeLabelQSFP56200GE             InterfaceSerializerVersion12TypeLabel = "QSFP56 (200GE)"
	InterfaceSerializerVersion12TypeLabelQSFP64GFC               InterfaceSerializerVersion12TypeLabel = "QSFP+ (64GFC)"
	InterfaceSerializerVersion12TypeLabelQSFPDD400GE             InterfaceSerializerVersion12TypeLabel = "QSFP-DD (400GE)"
	InterfaceSerializerVersion12TypeLabelSDR2Gbps                InterfaceSerializerVersion12TypeLabel = "SDR (2 Gbps)"
	InterfaceSerializerVersion12TypeLabelSFP10GE                 InterfaceSerializerVersion12TypeLabel = "SFP+ (10GE)"
	InterfaceSerializerVersion12TypeLabelSFP16GFC                InterfaceSerializerVersion12TypeLabel = "SFP+ (16GFC)"
	InterfaceSerializerVersion12TypeLabelSFP1GE                  InterfaceSerializerVersion12TypeLabel = "SFP (1GE)"
	InterfaceSerializerVersion12TypeLabelSFP1GFC                 InterfaceSerializerVersion12TypeLabel = "SFP (1GFC)"
	InterfaceSerializerVersion12TypeLabelSFP2825GE               InterfaceSerializerVersion12TypeLabel = "SFP28 (25GE)"
	InterfaceSerializerVersion12TypeLabelSFP2832GFC              InterfaceSerializerVersion12TypeLabel = "SFP28 (32GFC)"
	InterfaceSerializerVersion12TypeLabelSFP2GFC                 InterfaceSerializerVersion12TypeLabel = "SFP (2GFC)"
	InterfaceSerializerVersion12TypeLabelSFP4GFC                 InterfaceSerializerVersion12TypeLabel = "SFP (4GFC)"
	InterfaceSerializerVersion12TypeLabelSFP8GFC                 InterfaceSerializerVersion12TypeLabel = "SFP+ (8GFC)"
	InterfaceSerializerVersion12TypeLabelT11544Mbps              InterfaceSerializerVersion12TypeLabel = "T1 (1.544 Mbps)"
	InterfaceSerializerVersion12TypeLabelT345Mbps                InterfaceSerializerVersion12TypeLabel = "T3 (45 Mbps)"
	InterfaceSerializerVersion12TypeLabelVirtual                 InterfaceSerializerVersion12TypeLabel = "Virtual"
	InterfaceSerializerVersion12TypeLabelX210GE                  InterfaceSerializerVersion12TypeLabel = "X2 (10GE)"
	InterfaceSerializerVersion12TypeLabelXDR250Gbps              InterfaceSerializerVersion12TypeLabel = "XDR (250 Gbps)"
	InterfaceSerializerVersion12TypeLabelXENPAK10GE              InterfaceSerializerVersion12TypeLabel = "XENPAK (10GE)"
	InterfaceSerializerVersion12TypeLabelXFP10GE                 InterfaceSerializerVersion12TypeLabel = "XFP (10GE)"
)

// Defines values for InterfaceSerializerVersion12TypeValue.
const (
	InterfaceSerializerVersion12TypeValueBridge                InterfaceSerializerVersion12TypeValue = "bridge"
	InterfaceSerializerVersion12TypeValueCdma                  InterfaceSerializerVersion12TypeValue = "cdma"
	InterfaceSerializerVersion12TypeValueCiscoFlexstack        InterfaceSerializerVersion12TypeValue = "cisco-flexstack"
	InterfaceSerializerVersion12TypeValueCiscoFlexstackPlus    InterfaceSerializerVersion12TypeValue = "cisco-flexstack-plus"
	InterfaceSerializerVersion12TypeValueCiscoStackwise        InterfaceSerializerVersion12TypeValue = "cisco-stackwise"
	InterfaceSerializerVersion12TypeValueCiscoStackwisePlus    InterfaceSerializerVersion12TypeValue = "cisco-stackwise-plus"
	InterfaceSerializerVersion12TypeValueE1                    InterfaceSerializerVersion12TypeValue = "e1"
	InterfaceSerializerVersion12TypeValueE3                    InterfaceSerializerVersion12TypeValue = "e3"
	InterfaceSerializerVersion12TypeValueExtremeSummitstack    InterfaceSerializerVersion12TypeValue = "extreme-summitstack"
	InterfaceSerializerVersion12TypeValueExtremeSummitstack128 InterfaceSerializerVersion12TypeValue = "extreme-summitstack-128"
	InterfaceSerializerVersion12TypeValueExtremeSummitstack256 InterfaceSerializerVersion12TypeValue = "extreme-summitstack-256"
	InterfaceSerializerVersion12TypeValueExtremeSummitstack512 InterfaceSerializerVersion12TypeValue = "extreme-summitstack-512"
	InterfaceSerializerVersion12TypeValueGsm                   InterfaceSerializerVersion12TypeValue = "gsm"
	InterfaceSerializerVersion12TypeValueIeee80211a            InterfaceSerializerVersion12TypeValue = "ieee802.11a"
	InterfaceSerializerVersion12TypeValueIeee80211ac           InterfaceSerializerVersion12TypeValue = "ieee802.11ac"
	InterfaceSerializerVersion12TypeValueIeee80211ad           InterfaceSerializerVersion12TypeValue = "ieee802.11ad"
	InterfaceSerializerVersion12TypeValueIeee80211ax           InterfaceSerializerVersion12TypeValue = "ieee802.11ax"
	InterfaceSerializerVersion12TypeValueIeee80211g            InterfaceSerializerVersion12TypeValue = "ieee802.11g"
	InterfaceSerializerVersion12TypeValueIeee80211n            InterfaceSerializerVersion12TypeValue = "ieee802.11n"
	InterfaceSerializerVersion12TypeValueInfinibandDdr         InterfaceSerializerVersion12TypeValue = "infiniband-ddr"
	InterfaceSerializerVersion12TypeValueInfinibandEdr         InterfaceSerializerVersion12TypeValue = "infiniband-edr"
	InterfaceSerializerVersion12TypeValueInfinibandFdr         InterfaceSerializerVersion12TypeValue = "infiniband-fdr"
	InterfaceSerializerVersion12TypeValueInfinibandFdr10       InterfaceSerializerVersion12TypeValue = "infiniband-fdr10"
	InterfaceSerializerVersion12TypeValueInfinibandHdr         InterfaceSerializerVersion12TypeValue = "infiniband-hdr"
	InterfaceSerializerVersion12TypeValueInfinibandNdr         InterfaceSerializerVersion12TypeValue = "infiniband-ndr"
	InterfaceSerializerVersion12TypeValueInfinibandQdr         InterfaceSerializerVersion12TypeValue = "infiniband-qdr"
	InterfaceSerializerVersion12TypeValueInfinibandSdr         InterfaceSerializerVersion12TypeValue = "infiniband-sdr"
	InterfaceSerializerVersion12TypeValueInfinibandXdr         InterfaceSerializerVersion12TypeValue = "infiniband-xdr"
	InterfaceSerializerVersion12TypeValueJuniperVcp            InterfaceSerializerVersion12TypeValue = "juniper-vcp"
	InterfaceSerializerVersion12TypeValueLag                   InterfaceSerializerVersion12TypeValue = "lag"
	InterfaceSerializerVersion12TypeValueLte                   InterfaceSerializerVersion12TypeValue = "lte"
	InterfaceSerializerVersion12TypeValueN1000baseT            InterfaceSerializerVersion12TypeValue = "1000base-t"
	InterfaceSerializerVersion12TypeValueN1000baseXGbic        InterfaceSerializerVersion12TypeValue = "1000base-x-gbic"
	InterfaceSerializerVersion12TypeValueN1000baseXSfp         InterfaceSerializerVersion12TypeValue = "1000base-x-sfp"
	InterfaceSerializerVersion12TypeValueN100baseTx            InterfaceSerializerVersion12TypeValue = "100base-tx"
	InterfaceSerializerVersion12TypeValueN100gbaseXCfp         InterfaceSerializerVersion12TypeValue = "100gbase-x-cfp"
	InterfaceSerializerVersion12TypeValueN100gbaseXCfp2        InterfaceSerializerVersion12TypeValue = "100gbase-x-cfp2"
	InterfaceSerializerVersion12TypeValueN100gbaseXCfp4        InterfaceSerializerVersion12TypeValue = "100gbase-x-cfp4"
	InterfaceSerializerVersion12TypeValueN100gbaseXCpak        InterfaceSerializerVersion12TypeValue = "100gbase-x-cpak"
	InterfaceSerializerVersion12TypeValueN100gbaseXQsfp28      InterfaceSerializerVersion12TypeValue = "100gbase-x-qsfp28"
	InterfaceSerializerVersion12TypeValueN10gbaseCx4           InterfaceSerializerVersion12TypeValue = "10gbase-cx4"
	InterfaceSerializerVersion12TypeValueN10gbaseT             InterfaceSerializerVersion12TypeValue = "10gbase-t"
	InterfaceSerializerVersion12TypeValueN10gbaseXSfpp         InterfaceSerializerVersion12TypeValue = "10gbase-x-sfpp"
	InterfaceSerializerVersion12TypeValueN10gbaseXX2           InterfaceSerializerVersion12TypeValue = "10gbase-x-x2"
	InterfaceSerializerVersion12TypeValueN10gbaseXXenpak       InterfaceSerializerVersion12TypeValue = "10gbase-x-xenpak"
	InterfaceSerializerVersion12TypeValueN10gbaseXXfp          InterfaceSerializerVersion12TypeValue = "10gbase-x-xfp"
	InterfaceSerializerVersion12TypeValueN128gfcSfp28          InterfaceSerializerVersion12TypeValue = "128gfc-sfp28"
	InterfaceSerializerVersion12TypeValueN16gfcSfpp            InterfaceSerializerVersion12TypeValue = "16gfc-sfpp"
	InterfaceSerializerVersion12TypeValueN1gfcSfp              InterfaceSerializerVersion12TypeValue = "1gfc-sfp"
	InterfaceSerializerVersion12TypeValueN200gbaseXCfp2        InterfaceSerializerVersion12TypeValue = "200gbase-x-cfp2"
	InterfaceSerializerVersion12TypeValueN200gbaseXQsfp56      InterfaceSerializerVersion12TypeValue = "200gbase-x-qsfp56"
	InterfaceSerializerVersion12TypeValueN25gbaseT             InterfaceSerializerVersion12TypeValue = "2.5gbase-t"
	InterfaceSerializerVersion12TypeValueN25gbaseXSfp28        InterfaceSerializerVersion12TypeValue = "25gbase-x-sfp28"
	InterfaceSerializerVersion12TypeValueN2gfcSfp              InterfaceSerializerVersion12TypeValue = "2gfc-sfp"
	InterfaceSerializerVersion12TypeValueN32gfcSfp28           InterfaceSerializerVersion12TypeValue = "32gfc-sfp28"
	InterfaceSerializerVersion12TypeValueN400gbaseXOsfp        InterfaceSerializerVersion12TypeValue = "400gbase-x-osfp"
	InterfaceSerializerVersion12TypeValueN400gbaseXQsfpdd      InterfaceSerializerVersion12TypeValue = "400gbase-x-qsfpdd"
	InterfaceSerializerVersion12TypeValueN40gbaseXQsfpp        InterfaceSerializerVersion12TypeValue = "40gbase-x-qsfpp"
	InterfaceSerializerVersion12TypeValueN4gfcSfp              InterfaceSerializerVersion12TypeValue = "4gfc-sfp"
	InterfaceSerializerVersion12TypeValueN50gbaseXSfp28        InterfaceSerializerVersion12TypeValue = "50gbase-x-sfp28"
	InterfaceSerializerVersion12TypeValueN5gbaseT              InterfaceSerializerVersion12TypeValue = "5gbase-t"
	InterfaceSerializerVersion12TypeValueN64gfcQsfpp           InterfaceSerializerVersion12TypeValue = "64gfc-qsfpp"
	InterfaceSerializerVersion12TypeValueN8gfcSfpp             InterfaceSerializerVersion12TypeValue = "8gfc-sfpp"
	InterfaceSerializerVersion12TypeValueOther                 InterfaceSerializerVersion12TypeValue = "other"
	InterfaceSerializerVersion12TypeValueSonetOc12             InterfaceSerializerVersion12TypeValue = "sonet-oc12"
	InterfaceSerializerVersion12TypeValueSonetOc192            InterfaceSerializerVersion12TypeValue = "sonet-oc192"
	InterfaceSerializerVersion12TypeValueSonetOc1920           InterfaceSerializerVersion12TypeValue = "sonet-oc1920"
	InterfaceSerializerVersion12TypeValueSonetOc3              InterfaceSerializerVersion12TypeValue = "sonet-oc3"
	InterfaceSerializerVersion12TypeValueSonetOc3840           InterfaceSerializerVersion12TypeValue = "sonet-oc3840"
	InterfaceSerializerVersion12TypeValueSonetOc48             InterfaceSerializerVersion12TypeValue = "sonet-oc48"
	InterfaceSerializerVersion12TypeValueSonetOc768            InterfaceSerializerVersion12TypeValue = "sonet-oc768"
	InterfaceSerializerVersion12TypeValueT1                    InterfaceSerializerVersion12TypeValue = "t1"
	InterfaceSerializerVersion12TypeValueT3                    InterfaceSerializerVersion12TypeValue = "t3"
	InterfaceSerializerVersion12TypeValueVirtual               InterfaceSerializerVersion12TypeValue = "virtual"
)

// Defines values for InterfaceStatusChoices.
const (
	InterfaceStatusChoicesActive          InterfaceStatusChoices = "active"
	InterfaceStatusChoicesDecommissioning InterfaceStatusChoices = "decommissioning"
	InterfaceStatusChoicesFailed          InterfaceStatusChoices = "failed"
	InterfaceStatusChoicesMaintenance     InterfaceStatusChoices = "maintenance"
	InterfaceStatusChoicesPlanned         InterfaceStatusChoices = "planned"
)

// Defines values for InterfaceTemplateTypeLabel.
const (
	InterfaceTemplateTypeLabelBridge                  InterfaceTemplateTypeLabel = "Bridge"
	InterfaceTemplateTypeLabelCDMA                    InterfaceTemplateTypeLabel = "CDMA"
	InterfaceTemplateTypeLabelCFP100GE                InterfaceTemplateTypeLabel = "CFP (100GE)"
	InterfaceTemplateTypeLabelCFP2100GE               InterfaceTemplateTypeLabel = "CFP2 (100GE)"
	InterfaceTemplateTypeLabelCFP2200GE               InterfaceTemplateTypeLabel = "CFP2 (200GE)"
	InterfaceTemplateTypeLabelCFP4100GE               InterfaceTemplateTypeLabel = "CFP4 (100GE)"
	InterfaceTemplateTypeLabelCiscoCPAK100GE          InterfaceTemplateTypeLabel = "Cisco CPAK (100GE)"
	InterfaceTemplateTypeLabelCiscoFlexStack          InterfaceTemplateTypeLabel = "Cisco FlexStack"
	InterfaceTemplateTypeLabelCiscoFlexStackPlus      InterfaceTemplateTypeLabel = "Cisco FlexStack Plus"
	InterfaceTemplateTypeLabelCiscoStackWise          InterfaceTemplateTypeLabel = "Cisco StackWise"
	InterfaceTemplateTypeLabelCiscoStackWisePlus      InterfaceTemplateTypeLabel = "Cisco StackWise Plus"
	InterfaceTemplateTypeLabelDDR4Gbps                InterfaceTemplateTypeLabel = "DDR (4 Gbps)"
	InterfaceTemplateTypeLabelE12048Mbps              InterfaceTemplateTypeLabel = "E1 (2.048 Mbps)"
	InterfaceTemplateTypeLabelE334Mbps                InterfaceTemplateTypeLabel = "E3 (34 Mbps)"
	InterfaceTemplateTypeLabelEDR25Gbps               InterfaceTemplateTypeLabel = "EDR (25 Gbps)"
	InterfaceTemplateTypeLabelExtremeSummitStack      InterfaceTemplateTypeLabel = "Extreme SummitStack"
	InterfaceTemplateTypeLabelExtremeSummitStack128   InterfaceTemplateTypeLabel = "Extreme SummitStack-128"
	InterfaceTemplateTypeLabelExtremeSummitStack256   InterfaceTemplateTypeLabel = "Extreme SummitStack-256"
	InterfaceTemplateTypeLabelExtremeSummitStack512   InterfaceTemplateTypeLabel = "Extreme SummitStack-512"
	InterfaceTemplateTypeLabelFDR1010Gbps             InterfaceTemplateTypeLabel = "FDR10 (10 Gbps)"
	InterfaceTemplateTypeLabelFDR135Gbps              InterfaceTemplateTypeLabel = "FDR (13.5 Gbps)"
	InterfaceTemplateTypeLabelGBIC1GE                 InterfaceTemplateTypeLabel = "GBIC (1GE)"
	InterfaceTemplateTypeLabelGSM                     InterfaceTemplateTypeLabel = "GSM"
	InterfaceTemplateTypeLabelHDR50Gbps               InterfaceTemplateTypeLabel = "HDR (50 Gbps)"
	InterfaceTemplateTypeLabelIEEE80211a              InterfaceTemplateTypeLabel = "IEEE 802.11a"
	InterfaceTemplateTypeLabelIEEE80211ac             InterfaceTemplateTypeLabel = "IEEE 802.11ac"
	InterfaceTemplateTypeLabelIEEE80211ad             InterfaceTemplateTypeLabel = "IEEE 802.11ad"
	InterfaceTemplateTypeLabelIEEE80211ax             InterfaceTemplateTypeLabel = "IEEE 802.11ax"
	InterfaceTemplateTypeLabelIEEE80211bg             InterfaceTemplateTypeLabel = "IEEE 802.11b/g"
	InterfaceTemplateTypeLabelIEEE80211n              InterfaceTemplateTypeLabel = "IEEE 802.11n"
	InterfaceTemplateTypeLabelJuniperVCP              InterfaceTemplateTypeLabel = "Juniper VCP"
	InterfaceTemplateTypeLabelLTE                     InterfaceTemplateTypeLabel = "LTE"
	InterfaceTemplateTypeLabelLinkAggregationGroupLAG InterfaceTemplateTypeLabel = "Link Aggregation Group (LAG)"
	InterfaceTemplateTypeLabelN1000BASET1GE           InterfaceTemplateTypeLabel = "1000BASE-T (1GE)"
	InterfaceTemplateTypeLabelN100BASETX10100ME       InterfaceTemplateTypeLabel = "100BASE-TX (10/100ME)"
	InterfaceTemplateTypeLabelN10GBASECX410GE         InterfaceTemplateTypeLabel = "10GBASE-CX4 (10GE)"
	InterfaceTemplateTypeLabelN10GBASET10GE           InterfaceTemplateTypeLabel = "10GBASE-T (10GE)"
	InterfaceTemplateTypeLabelN25GBASET25GE           InterfaceTemplateTypeLabel = "2.5GBASE-T (2.5GE)"
	InterfaceTemplateTypeLabelN5GBASET5GE             InterfaceTemplateTypeLabel = "5GBASE-T (5GE)"
	InterfaceTemplateTypeLabelNDR100Gbps              InterfaceTemplateTypeLabel = "NDR (100 Gbps)"
	InterfaceTemplateTypeLabelOC12STM4                InterfaceTemplateTypeLabel = "OC-12/STM-4"
	InterfaceTemplateTypeLabelOC1920STM640            InterfaceTemplateTypeLabel = "OC-1920/STM-640"
	InterfaceTemplateTypeLabelOC192STM64              InterfaceTemplateTypeLabel = "OC-192/STM-64"
	InterfaceTemplateTypeLabelOC3840STM1234           InterfaceTemplateTypeLabel = "OC-3840/STM-1234"
	InterfaceTemplateTypeLabelOC3STM1                 InterfaceTemplateTypeLabel = "OC-3/STM-1"
	InterfaceTemplateTypeLabelOC48STM16               InterfaceTemplateTypeLabel = "OC-48/STM-16"
	InterfaceTemplateTypeLabelOC768STM256             InterfaceTemplateTypeLabel = "OC-768/STM-256"
	InterfaceTemplateTypeLabelOSFP400GE               InterfaceTemplateTypeLabel = "OSFP (400GE)"
	InterfaceTemplateTypeLabelOther                   InterfaceTemplateTypeLabel = "Other"
	InterfaceTemplateTypeLabelQDR8Gbps                InterfaceTemplateTypeLabel = "QDR (8 Gbps)"
	InterfaceTemplateTypeLabelQSFP28100GE             InterfaceTemplateTypeLabel = "QSFP28 (100GE)"
	InterfaceTemplateTypeLabelQSFP28128GFC            InterfaceTemplateTypeLabel = "QSFP28 (128GFC)"
	InterfaceTemplateTypeLabelQSFP2850GE              InterfaceTemplateTypeLabel = "QSFP28 (50GE)"
	InterfaceTemplateTypeLabelQSFP40GE                InterfaceTemplateTypeLabel = "QSFP+ (40GE)"
	InterfaceTemplateTypeLabelQSFP56200GE             InterfaceTemplateTypeLabel = "QSFP56 (200GE)"
	InterfaceTemplateTypeLabelQSFP64GFC               InterfaceTemplateTypeLabel = "QSFP+ (64GFC)"
	InterfaceTemplateTypeLabelQSFPDD400GE             InterfaceTemplateTypeLabel = "QSFP-DD (400GE)"
	InterfaceTemplateTypeLabelSDR2Gbps                InterfaceTemplateTypeLabel = "SDR (2 Gbps)"
	InterfaceTemplateTypeLabelSFP10GE                 InterfaceTemplateTypeLabel = "SFP+ (10GE)"
	InterfaceTemplateTypeLabelSFP16GFC                InterfaceTemplateTypeLabel = "SFP+ (16GFC)"
	InterfaceTemplateTypeLabelSFP1GE                  InterfaceTemplateTypeLabel = "SFP (1GE)"
	InterfaceTemplateTypeLabelSFP1GFC                 InterfaceTemplateTypeLabel = "SFP (1GFC)"
	InterfaceTemplateTypeLabelSFP2825GE               InterfaceTemplateTypeLabel = "SFP28 (25GE)"
	InterfaceTemplateTypeLabelSFP2832GFC              InterfaceTemplateTypeLabel = "SFP28 (32GFC)"
	InterfaceTemplateTypeLabelSFP2GFC                 InterfaceTemplateTypeLabel = "SFP (2GFC)"
	InterfaceTemplateTypeLabelSFP4GFC                 InterfaceTemplateTypeLabel = "SFP (4GFC)"
	InterfaceTemplateTypeLabelSFP8GFC                 InterfaceTemplateTypeLabel = "SFP+ (8GFC)"
	InterfaceTemplateTypeLabelT11544Mbps              InterfaceTemplateTypeLabel = "T1 (1.544 Mbps)"
	InterfaceTemplateTypeLabelT345Mbps                InterfaceTemplateTypeLabel = "T3 (45 Mbps)"
	InterfaceTemplateTypeLabelVirtual                 InterfaceTemplateTypeLabel = "Virtual"
	InterfaceTemplateTypeLabelX210GE                  InterfaceTemplateTypeLabel = "X2 (10GE)"
	InterfaceTemplateTypeLabelXDR250Gbps              InterfaceTemplateTypeLabel = "XDR (250 Gbps)"
	InterfaceTemplateTypeLabelXENPAK10GE              InterfaceTemplateTypeLabel = "XENPAK (10GE)"
	InterfaceTemplateTypeLabelXFP10GE                 InterfaceTemplateTypeLabel = "XFP (10GE)"
)

// Defines values for InterfaceTemplateTypeValue.
const (
	InterfaceTemplateTypeValueBridge                InterfaceTemplateTypeValue = "bridge"
	InterfaceTemplateTypeValueCdma                  InterfaceTemplateTypeValue = "cdma"
	InterfaceTemplateTypeValueCiscoFlexstack        InterfaceTemplateTypeValue = "cisco-flexstack"
	InterfaceTemplateTypeValueCiscoFlexstackPlus    InterfaceTemplateTypeValue = "cisco-flexstack-plus"
	InterfaceTemplateTypeValueCiscoStackwise        InterfaceTemplateTypeValue = "cisco-stackwise"
	InterfaceTemplateTypeValueCiscoStackwisePlus    InterfaceTemplateTypeValue = "cisco-stackwise-plus"
	InterfaceTemplateTypeValueE1                    InterfaceTemplateTypeValue = "e1"
	InterfaceTemplateTypeValueE3                    InterfaceTemplateTypeValue = "e3"
	InterfaceTemplateTypeValueExtremeSummitstack    InterfaceTemplateTypeValue = "extreme-summitstack"
	InterfaceTemplateTypeValueExtremeSummitstack128 InterfaceTemplateTypeValue = "extreme-summitstack-128"
	InterfaceTemplateTypeValueExtremeSummitstack256 InterfaceTemplateTypeValue = "extreme-summitstack-256"
	InterfaceTemplateTypeValueExtremeSummitstack512 InterfaceTemplateTypeValue = "extreme-summitstack-512"
	InterfaceTemplateTypeValueGsm                   InterfaceTemplateTypeValue = "gsm"
	InterfaceTemplateTypeValueIeee80211a            InterfaceTemplateTypeValue = "ieee802.11a"
	InterfaceTemplateTypeValueIeee80211ac           InterfaceTemplateTypeValue = "ieee802.11ac"
	InterfaceTemplateTypeValueIeee80211ad           InterfaceTemplateTypeValue = "ieee802.11ad"
	InterfaceTemplateTypeValueIeee80211ax           InterfaceTemplateTypeValue = "ieee802.11ax"
	InterfaceTemplateTypeValueIeee80211g            InterfaceTemplateTypeValue = "ieee802.11g"
	InterfaceTemplateTypeValueIeee80211n            InterfaceTemplateTypeValue = "ieee802.11n"
	InterfaceTemplateTypeValueInfinibandDdr         InterfaceTemplateTypeValue = "infiniband-ddr"
	InterfaceTemplateTypeValueInfinibandEdr         InterfaceTemplateTypeValue = "infiniband-edr"
	InterfaceTemplateTypeValueInfinibandFdr         InterfaceTemplateTypeValue = "infiniband-fdr"
	InterfaceTemplateTypeValueInfinibandFdr10       InterfaceTemplateTypeValue = "infiniband-fdr10"
	InterfaceTemplateTypeValueInfinibandHdr         InterfaceTemplateTypeValue = "infiniband-hdr"
	InterfaceTemplateTypeValueInfinibandNdr         InterfaceTemplateTypeValue = "infiniband-ndr"
	InterfaceTemplateTypeValueInfinibandQdr         InterfaceTemplateTypeValue = "infiniband-qdr"
	InterfaceTemplateTypeValueInfinibandSdr         InterfaceTemplateTypeValue = "infiniband-sdr"
	InterfaceTemplateTypeValueInfinibandXdr         InterfaceTemplateTypeValue = "infiniband-xdr"
	InterfaceTemplateTypeValueJuniperVcp            InterfaceTemplateTypeValue = "juniper-vcp"
	InterfaceTemplateTypeValueLag                   InterfaceTemplateTypeValue = "lag"
	InterfaceTemplateTypeValueLte                   InterfaceTemplateTypeValue = "lte"
	InterfaceTemplateTypeValueN1000baseT            InterfaceTemplateTypeValue = "1000base-t"
	InterfaceTemplateTypeValueN1000baseXGbic        InterfaceTemplateTypeValue = "1000base-x-gbic"
	InterfaceTemplateTypeValueN1000baseXSfp         InterfaceTemplateTypeValue = "1000base-x-sfp"
	InterfaceTemplateTypeValueN100baseTx            InterfaceTemplateTypeValue = "100base-tx"
	InterfaceTemplateTypeValueN100gbaseXCfp         InterfaceTemplateTypeValue = "100gbase-x-cfp"
	InterfaceTemplateTypeValueN100gbaseXCfp2        InterfaceTemplateTypeValue = "100gbase-x-cfp2"
	InterfaceTemplateTypeValueN100gbaseXCfp4        InterfaceTemplateTypeValue = "100gbase-x-cfp4"
	InterfaceTemplateTypeValueN100gbaseXCpak        InterfaceTemplateTypeValue = "100gbase-x-cpak"
	InterfaceTemplateTypeValueN100gbaseXQsfp28      InterfaceTemplateTypeValue = "100gbase-x-qsfp28"
	InterfaceTemplateTypeValueN10gbaseCx4           InterfaceTemplateTypeValue = "10gbase-cx4"
	InterfaceTemplateTypeValueN10gbaseT             InterfaceTemplateTypeValue = "10gbase-t"
	InterfaceTemplateTypeValueN10gbaseXSfpp         InterfaceTemplateTypeValue = "10gbase-x-sfpp"
	InterfaceTemplateTypeValueN10gbaseXX2           InterfaceTemplateTypeValue = "10gbase-x-x2"
	InterfaceTemplateTypeValueN10gbaseXXenpak       InterfaceTemplateTypeValue = "10gbase-x-xenpak"
	InterfaceTemplateTypeValueN10gbaseXXfp          InterfaceTemplateTypeValue = "10gbase-x-xfp"
	InterfaceTemplateTypeValueN128gfcSfp28          InterfaceTemplateTypeValue = "128gfc-sfp28"
	InterfaceTemplateTypeValueN16gfcSfpp            InterfaceTemplateTypeValue = "16gfc-sfpp"
	InterfaceTemplateTypeValueN1gfcSfp              InterfaceTemplateTypeValue = "1gfc-sfp"
	InterfaceTemplateTypeValueN200gbaseXCfp2        InterfaceTemplateTypeValue = "200gbase-x-cfp2"
	InterfaceTemplateTypeValueN200gbaseXQsfp56      InterfaceTemplateTypeValue = "200gbase-x-qsfp56"
	InterfaceTemplateTypeValueN25gbaseT             InterfaceTemplateTypeValue = "2.5gbase-t"
	InterfaceTemplateTypeValueN25gbaseXSfp28        InterfaceTemplateTypeValue = "25gbase-x-sfp28"
	InterfaceTemplateTypeValueN2gfcSfp              InterfaceTemplateTypeValue = "2gfc-sfp"
	InterfaceTemplateTypeValueN32gfcSfp28           InterfaceTemplateTypeValue = "32gfc-sfp28"
	InterfaceTemplateTypeValueN400gbaseXOsfp        InterfaceTemplateTypeValue = "400gbase-x-osfp"
	InterfaceTemplateTypeValueN400gbaseXQsfpdd      InterfaceTemplateTypeValue = "400gbase-x-qsfpdd"
	InterfaceTemplateTypeValueN40gbaseXQsfpp        InterfaceTemplateTypeValue = "40gbase-x-qsfpp"
	InterfaceTemplateTypeValueN4gfcSfp              InterfaceTemplateTypeValue = "4gfc-sfp"
	InterfaceTemplateTypeValueN50gbaseXSfp28        InterfaceTemplateTypeValue = "50gbase-x-sfp28"
	InterfaceTemplateTypeValueN5gbaseT              InterfaceTemplateTypeValue = "5gbase-t"
	InterfaceTemplateTypeValueN64gfcQsfpp           InterfaceTemplateTypeValue = "64gfc-qsfpp"
	InterfaceTemplateTypeValueN8gfcSfpp             InterfaceTemplateTypeValue = "8gfc-sfpp"
	InterfaceTemplateTypeValueOther                 InterfaceTemplateTypeValue = "other"
	InterfaceTemplateTypeValueSonetOc12             InterfaceTemplateTypeValue = "sonet-oc12"
	InterfaceTemplateTypeValueSonetOc192            InterfaceTemplateTypeValue = "sonet-oc192"
	InterfaceTemplateTypeValueSonetOc1920           InterfaceTemplateTypeValue = "sonet-oc1920"
	InterfaceTemplateTypeValueSonetOc3              InterfaceTemplateTypeValue = "sonet-oc3"
	InterfaceTemplateTypeValueSonetOc3840           InterfaceTemplateTypeValue = "sonet-oc3840"
	InterfaceTemplateTypeValueSonetOc48             InterfaceTemplateTypeValue = "sonet-oc48"
	InterfaceTemplateTypeValueSonetOc768            InterfaceTemplateTypeValue = "sonet-oc768"
	InterfaceTemplateTypeValueT1                    InterfaceTemplateTypeValue = "t1"
	InterfaceTemplateTypeValueT3                    InterfaceTemplateTypeValue = "t3"
	InterfaceTemplateTypeValueVirtual               InterfaceTemplateTypeValue = "virtual"
)

// Defines values for InterfaceTypeChoices.
const (
	InterfaceTypeChoicesBridge                InterfaceTypeChoices = "bridge"
	InterfaceTypeChoicesCdma                  InterfaceTypeChoices = "cdma"
	InterfaceTypeChoicesCiscoFlexstack        InterfaceTypeChoices = "cisco-flexstack"
	InterfaceTypeChoicesCiscoFlexstackPlus    InterfaceTypeChoices = "cisco-flexstack-plus"
	InterfaceTypeChoicesCiscoStackwise        InterfaceTypeChoices = "cisco-stackwise"
	InterfaceTypeChoicesCiscoStackwisePlus    InterfaceTypeChoices = "cisco-stackwise-plus"
	InterfaceTypeChoicesE1                    InterfaceTypeChoices = "e1"
	InterfaceTypeChoicesE3                    InterfaceTypeChoices = "e3"
	InterfaceTypeChoicesExtremeSummitstack    InterfaceTypeChoices = "extreme-summitstack"
	InterfaceTypeChoicesExtremeSummitstack128 InterfaceTypeChoices = "extreme-summitstack-128"
	InterfaceTypeChoicesExtremeSummitstack256 InterfaceTypeChoices = "extreme-summitstack-256"
	InterfaceTypeChoicesExtremeSummitstack512 InterfaceTypeChoices = "extreme-summitstack-512"
	InterfaceTypeChoicesGsm                   InterfaceTypeChoices = "gsm"
	InterfaceTypeChoicesIeee80211a            InterfaceTypeChoices = "ieee802.11a"
	InterfaceTypeChoicesIeee80211ac           InterfaceTypeChoices = "ieee802.11ac"
	InterfaceTypeChoicesIeee80211ad           InterfaceTypeChoices = "ieee802.11ad"
	InterfaceTypeChoicesIeee80211ax           InterfaceTypeChoices = "ieee802.11ax"
	InterfaceTypeChoicesIeee80211g            InterfaceTypeChoices = "ieee802.11g"
	InterfaceTypeChoicesIeee80211n            InterfaceTypeChoices = "ieee802.11n"
	InterfaceTypeChoicesInfinibandDdr         InterfaceTypeChoices = "infiniband-ddr"
	InterfaceTypeChoicesInfinibandEdr         InterfaceTypeChoices = "infiniband-edr"
	InterfaceTypeChoicesInfinibandFdr         InterfaceTypeChoices = "infiniband-fdr"
	InterfaceTypeChoicesInfinibandFdr10       InterfaceTypeChoices = "infiniband-fdr10"
	InterfaceTypeChoicesInfinibandHdr         InterfaceTypeChoices = "infiniband-hdr"
	InterfaceTypeChoicesInfinibandNdr         InterfaceTypeChoices = "infiniband-ndr"
	InterfaceTypeChoicesInfinibandQdr         InterfaceTypeChoices = "infiniband-qdr"
	InterfaceTypeChoicesInfinibandSdr         InterfaceTypeChoices = "infiniband-sdr"
	InterfaceTypeChoicesInfinibandXdr         InterfaceTypeChoices = "infiniband-xdr"
	InterfaceTypeChoicesJuniperVcp            InterfaceTypeChoices = "juniper-vcp"
	InterfaceTypeChoicesLag                   InterfaceTypeChoices = "lag"
	InterfaceTypeChoicesLte                   InterfaceTypeChoices = "lte"
	InterfaceTypeChoicesN1000baseT            InterfaceTypeChoices = "1000base-t"
	InterfaceTypeChoicesN1000baseXGbic        InterfaceTypeChoices = "1000base-x-gbic"
	InterfaceTypeChoicesN1000baseXSfp         InterfaceTypeChoices = "1000base-x-sfp"
	InterfaceTypeChoicesN100baseTx            InterfaceTypeChoices = "100base-tx"
	InterfaceTypeChoicesN100gbaseXCfp         InterfaceTypeChoices = "100gbase-x-cfp"
	InterfaceTypeChoicesN100gbaseXCfp2        InterfaceTypeChoices = "100gbase-x-cfp2"
	InterfaceTypeChoicesN100gbaseXCfp4        InterfaceTypeChoices = "100gbase-x-cfp4"
	InterfaceTypeChoicesN100gbaseXCpak        InterfaceTypeChoices = "100gbase-x-cpak"
	InterfaceTypeChoicesN100gbaseXQsfp28      InterfaceTypeChoices = "100gbase-x-qsfp28"
	InterfaceTypeChoicesN10gbaseCx4           InterfaceTypeChoices = "10gbase-cx4"
	InterfaceTypeChoicesN10gbaseT             InterfaceTypeChoices = "10gbase-t"
	InterfaceTypeChoicesN10gbaseXSfpp         InterfaceTypeChoices = "10gbase-x-sfpp"
	InterfaceTypeChoicesN10gbaseXX2           InterfaceTypeChoices = "10gbase-x-x2"
	InterfaceTypeChoicesN10gbaseXXenpak       InterfaceTypeChoices = "10gbase-x-xenpak"
	InterfaceTypeChoicesN10gbaseXXfp          InterfaceTypeChoices = "10gbase-x-xfp"
	InterfaceTypeChoicesN128gfcSfp28          InterfaceTypeChoices = "128gfc-sfp28"
	InterfaceTypeChoicesN16gfcSfpp            InterfaceTypeChoices = "16gfc-sfpp"
	InterfaceTypeChoicesN1gfcSfp              InterfaceTypeChoices = "1gfc-sfp"
	InterfaceTypeChoicesN200gbaseXCfp2        InterfaceTypeChoices = "200gbase-x-cfp2"
	InterfaceTypeChoicesN200gbaseXQsfp56      InterfaceTypeChoices = "200gbase-x-qsfp56"
	InterfaceTypeChoicesN25gbaseT             InterfaceTypeChoices = "2.5gbase-t"
	InterfaceTypeChoicesN25gbaseXSfp28        InterfaceTypeChoices = "25gbase-x-sfp28"
	InterfaceTypeChoicesN2gfcSfp              InterfaceTypeChoices = "2gfc-sfp"
	InterfaceTypeChoicesN32gfcSfp28           InterfaceTypeChoices = "32gfc-sfp28"
	InterfaceTypeChoicesN400gbaseXOsfp        InterfaceTypeChoices = "400gbase-x-osfp"
	InterfaceTypeChoicesN400gbaseXQsfpdd      InterfaceTypeChoices = "400gbase-x-qsfpdd"
	InterfaceTypeChoicesN40gbaseXQsfpp        InterfaceTypeChoices = "40gbase-x-qsfpp"
	InterfaceTypeChoicesN4gfcSfp              InterfaceTypeChoices = "4gfc-sfp"
	InterfaceTypeChoicesN50gbaseXSfp28        InterfaceTypeChoices = "50gbase-x-sfp28"
	InterfaceTypeChoicesN5gbaseT              InterfaceTypeChoices = "5gbase-t"
	InterfaceTypeChoicesN64gfcQsfpp           InterfaceTypeChoices = "64gfc-qsfpp"
	InterfaceTypeChoicesN8gfcSfpp             InterfaceTypeChoices = "8gfc-sfpp"
	InterfaceTypeChoicesOther                 InterfaceTypeChoices = "other"
	InterfaceTypeChoicesSonetOc12             InterfaceTypeChoices = "sonet-oc12"
	InterfaceTypeChoicesSonetOc192            InterfaceTypeChoices = "sonet-oc192"
	InterfaceTypeChoicesSonetOc1920           InterfaceTypeChoices = "sonet-oc1920"
	InterfaceTypeChoicesSonetOc3              InterfaceTypeChoices = "sonet-oc3"
	InterfaceTypeChoicesSonetOc3840           InterfaceTypeChoices = "sonet-oc3840"
	InterfaceTypeChoicesSonetOc48             InterfaceTypeChoices = "sonet-oc48"
	InterfaceTypeChoicesSonetOc768            InterfaceTypeChoices = "sonet-oc768"
	InterfaceTypeChoicesT1                    InterfaceTypeChoices = "t1"
	InterfaceTypeChoicesT3                    InterfaceTypeChoices = "t3"
	InterfaceTypeChoicesVirtual               InterfaceTypeChoices = "virtual"
)

// Defines values for IpProtocolEnum.
const (
	IpProtocolEnumAH            IpProtocolEnum = "AH"
	IpProtocolEnumAN            IpProtocolEnum = "A/N"
	IpProtocolEnumARIS          IpProtocolEnum = "ARIS"
	IpProtocolEnumAX25          IpProtocolEnum = "AX.25"
	IpProtocolEnumBBNRCCMON     IpProtocolEnum = "BBN-RCC-MON"
	IpProtocolEnumBNA           IpProtocolEnum = "BNA"
	IpProtocolEnumBRSATMON      IpProtocolEnum = "BR-SAT-MON"
	IpProtocolEnumCBT           IpProtocolEnum = "CBT"
	IpProtocolEnumCFTP          IpProtocolEnum = "CFTP"
	IpProtocolEnumCHAOS         IpProtocolEnum = "CHAOS"
	IpProtocolEnumCPHB          IpProtocolEnum = "CPHB"
	IpProtocolEnumCPNX          IpProtocolEnum = "CPNX"
	IpProtocolEnumCRTP          IpProtocolEnum = "CRTP"
	IpProtocolEnumCRUDP         IpProtocolEnum = "CRUDP"
	IpProtocolEnumCompaqPeer    IpProtocolEnum = "Compaq-Peer"
	IpProtocolEnumDCCP          IpProtocolEnum = "DCCP"
	IpProtocolEnumDCNMEAS       IpProtocolEnum = "DCN-MEAS"
	IpProtocolEnumDDP           IpProtocolEnum = "DDP"
	IpProtocolEnumDDX           IpProtocolEnum = "DDX"
	IpProtocolEnumDGP           IpProtocolEnum = "DGP"
	IpProtocolEnumDSR           IpProtocolEnum = "DSR"
	IpProtocolEnumEGP           IpProtocolEnum = "EGP"
	IpProtocolEnumEIGRP         IpProtocolEnum = "EIGRP"
	IpProtocolEnumEMCON         IpProtocolEnum = "EMCON"
	IpProtocolEnumENCAP         IpProtocolEnum = "ENCAP"
	IpProtocolEnumESP           IpProtocolEnum = "ESP"
	IpProtocolEnumETHERIP       IpProtocolEnum = "ETHERIP"
	IpProtocolEnumEthernet      IpProtocolEnum = "Ethernet"
	IpProtocolEnumFC            IpProtocolEnum = "FC"
	IpProtocolEnumFIRE          IpProtocolEnum = "FIRE"
	IpProtocolEnumGGP           IpProtocolEnum = "GGP"
	IpProtocolEnumGMTP          IpProtocolEnum = "GMTP"
	IpProtocolEnumGRE           IpProtocolEnum = "GRE"
	IpProtocolEnumHIP           IpProtocolEnum = "HIP"
	IpProtocolEnumHMP           IpProtocolEnum = "HMP"
	IpProtocolEnumIATP          IpProtocolEnum = "IATP"
	IpProtocolEnumICMP          IpProtocolEnum = "ICMP"
	IpProtocolEnumIDPR          IpProtocolEnum = "IDPR"
	IpProtocolEnumIDPRCMTP      IpProtocolEnum = "IDPR-CMTP"
	IpProtocolEnumIDRP          IpProtocolEnum = "IDRP"
	IpProtocolEnumIFMP          IpProtocolEnum = "IFMP"
	IpProtocolEnumIGMP          IpProtocolEnum = "IGMP"
	IpProtocolEnumIGP           IpProtocolEnum = "IGP"
	IpProtocolEnumIL            IpProtocolEnum = "IL"
	IpProtocolEnumINLSP         IpProtocolEnum = "I-NLSP"
	IpProtocolEnumIPCV          IpProtocolEnum = "IPCV"
	IpProtocolEnumIPComp        IpProtocolEnum = "IPComp"
	IpProtocolEnumIPIP          IpProtocolEnum = "IPIP"
	IpProtocolEnumIPLT          IpProtocolEnum = "IPLT"
	IpProtocolEnumIPPC          IpProtocolEnum = "IPPC"
	IpProtocolEnumIPXInIP       IpProtocolEnum = "IPX-in-IP"
	IpProtocolEnumIRTP          IpProtocolEnum = "IRTP"
	IpProtocolEnumISOIP         IpProtocolEnum = "ISO-IP"
	IpProtocolEnumISOTP4        IpProtocolEnum = "ISO-TP4"
	IpProtocolEnumKRYPTOLAN     IpProtocolEnum = "KRYPTOLAN"
	IpProtocolEnumL2TP          IpProtocolEnum = "L2TP"
	IpProtocolEnumLARP          IpProtocolEnum = "LARP"
	IpProtocolEnumLEAF1         IpProtocolEnum = "LEAF-1"
	IpProtocolEnumLEAF2         IpProtocolEnum = "LEAF-2"
	IpProtocolEnumMERITINP      IpProtocolEnum = "MERIT-INP"
	IpProtocolEnumMFENSP        IpProtocolEnum = "MFE-NSP"
	IpProtocolEnumMOBILE        IpProtocolEnum = "MOBILE"
	IpProtocolEnumMTP           IpProtocolEnum = "MTP"
	IpProtocolEnumMUX           IpProtocolEnum = "MUX"
	IpProtocolEnumManet         IpProtocolEnum = "manet"
	IpProtocolEnumN3PC          IpProtocolEnum = "3PC"
	IpProtocolEnumNARP          IpProtocolEnum = "NARP"
	IpProtocolEnumNETBLT        IpProtocolEnum = "NETBLT"
	IpProtocolEnumNSFNETIGP     IpProtocolEnum = "NSFNET-IGP"
	IpProtocolEnumNVPII         IpProtocolEnum = "NVP-II"
	IpProtocolEnumOSPFIGP       IpProtocolEnum = "OSPFIGP"
	IpProtocolEnumPGM           IpProtocolEnum = "PGM"
	IpProtocolEnumPIM           IpProtocolEnum = "PIM"
	IpProtocolEnumPIPE          IpProtocolEnum = "PIPE"
	IpProtocolEnumPNNI          IpProtocolEnum = "PNNI"
	IpProtocolEnumPRM           IpProtocolEnum = "PRM"
	IpProtocolEnumPTP           IpProtocolEnum = "PTP"
	IpProtocolEnumPUP           IpProtocolEnum = "PUP"
	IpProtocolEnumPVP           IpProtocolEnum = "PVP"
	IpProtocolEnumQNX           IpProtocolEnum = "QNX"
	IpProtocolEnumRDP           IpProtocolEnum = "RDP"
	IpProtocolEnumROHC          IpProtocolEnum = "ROHC"
	IpProtocolEnumRSVP          IpProtocolEnum = "RSVP"
	IpProtocolEnumRSVPE2EIGNORE IpProtocolEnum = "RSVP-E2E-IGNORE"
	IpProtocolEnumRVD           IpProtocolEnum = "RVD"
	IpProtocolEnumSATEXPAK      IpProtocolEnum = "SAT-EXPAK"
	IpProtocolEnumSATMON        IpProtocolEnum = "SAT-MON"
	IpProtocolEnumSCCSP         IpProtocolEnum = "SCC-SP"
	IpProtocolEnumSCPS          IpProtocolEnum = "SCPS"
	IpProtocolEnumSCTP          IpProtocolEnum = "SCTP"
	IpProtocolEnumSDRP          IpProtocolEnum = "SDRP"
	IpProtocolEnumSECUREVMTP    IpProtocolEnum = "SECURE-VMTP"
	IpProtocolEnumSKIP          IpProtocolEnum = "SKIP"
	IpProtocolEnumSM            IpProtocolEnum = "SM"
	IpProtocolEnumSMP           IpProtocolEnum = "SMP"
	IpProtocolEnumSNP           IpProtocolEnum = "SNP"
	IpProtocolEnumSPS           IpProtocolEnum = "SPS"
	IpProtocolEnumSRP           IpProtocolEnum = "SRP"
	IpProtocolEnumSSCOPMCE      IpProtocolEnum = "SSCOPMCE"
	IpProtocolEnumSTP           IpProtocolEnum = "STP"
	IpProtocolEnumSUNND         IpProtocolEnum = "SUN-ND"
	IpProtocolEnumSpriteRPC     IpProtocolEnum = "Sprite-RPC"
	IpProtocolEnumTCF           IpProtocolEnum = "TCF"
	IpProtocolEnumTCP           IpProtocolEnum = "TCP"
	IpProtocolEnumTLSP          IpProtocolEnum = "TLSP"
	IpProtocolEnumTP            IpProtocolEnum = "TP++"
	IpProtocolEnumTRUNK1        IpProtocolEnum = "TRUNK-1"
	IpProtocolEnumTRUNK2        IpProtocolEnum = "TRUNK-2"
	IpProtocolEnumTTP           IpProtocolEnum = "TTP"
	IpProtocolEnumUDP           IpProtocolEnum = "UDP"
	IpProtocolEnumUDPLite       IpProtocolEnum = "UDPLite"
	IpProtocolEnumUTI           IpProtocolEnum = "UTI"
	IpProtocolEnumVINES         IpProtocolEnum = "VINES"
	IpProtocolEnumVISA          IpProtocolEnum = "VISA"
	IpProtocolEnumVMTP          IpProtocolEnum = "VMTP"
	IpProtocolEnumWBEXPAK       IpProtocolEnum = "WB-EXPAK"
	IpProtocolEnumWBMON         IpProtocolEnum = "WB-MON"
	IpProtocolEnumWESP          IpProtocolEnum = "WESP"
	IpProtocolEnumWSN           IpProtocolEnum = "WSN"
	IpProtocolEnumXNET          IpProtocolEnum = "XNET"
	IpProtocolEnumXNSIDP        IpProtocolEnum = "XNS-IDP"
	IpProtocolEnumXTP           IpProtocolEnum = "XTP"
)

// Defines values for JobExecutionTypeIntervalChoices.
const (
	Custom      JobExecutionTypeIntervalChoices = "custom"
	Daily       JobExecutionTypeIntervalChoices = "daily"
	Future      JobExecutionTypeIntervalChoices = "future"
	Hourly      JobExecutionTypeIntervalChoices = "hourly"
	Immediately JobExecutionTypeIntervalChoices = "immediately"
	Weekly      JobExecutionTypeIntervalChoices = "weekly"
)

// Defines values for JobResultStatusLabel.
const (
	JobResultStatusLabelCompleted JobResultStatusLabel = "Completed"
	JobResultStatusLabelErrored   JobResultStatusLabel = "Errored"
	JobResultStatusLabelFailed    JobResultStatusLabel = "Failed"
	JobResultStatusLabelPending   JobResultStatusLabel = "Pending"
	JobResultStatusLabelRunning   JobResultStatusLabel = "Running"
)

// Defines values for JobResultStatusValue.
const (
	JobResultStatusValueCompleted JobResultStatusValue = "completed"
	JobResultStatusValueErrored   JobResultStatusValue = "errored"
	JobResultStatusValueFailed    JobResultStatusValue = "failed"
	JobResultStatusValuePending   JobResultStatusValue = "pending"
	JobResultStatusValueRunning   JobResultStatusValue = "running"
)

// Defines values for LengthUnitEnum.
const (
	LengthUnitEnumCm LengthUnitEnum = "cm"
	LengthUnitEnumFt LengthUnitEnum = "ft"
	LengthUnitEnumIn LengthUnitEnum = "in"
	LengthUnitEnumM  LengthUnitEnum = "m"
)

// Defines values for LocationStatusLabel.
const (
	LocationStatusLabelActive          LocationStatusLabel = "Active"
	LocationStatusLabelDecommissioning LocationStatusLabel = "Decommissioning"
	LocationStatusLabelPlanned         LocationStatusLabel = "Planned"
	LocationStatusLabelRetired         LocationStatusLabel = "Retired"
	LocationStatusLabelStaging         LocationStatusLabel = "Staging"
)

// Defines values for LocationStatusValue.
const (
	LocationStatusValueActive          LocationStatusValue = "active"
	LocationStatusValueDecommissioning LocationStatusValue = "decommissioning"
	LocationStatusValuePlanned         LocationStatusValue = "planned"
	LocationStatusValueRetired         LocationStatusValue = "retired"
	LocationStatusValueStaging         LocationStatusValue = "staging"
)

// Defines values for LocationStatusChoices.
const (
	LocationStatusChoicesActive          LocationStatusChoices = "active"
	LocationStatusChoicesDecommissioning LocationStatusChoices = "decommissioning"
	LocationStatusChoicesPlanned         LocationStatusChoices = "planned"
	LocationStatusChoicesRetired         LocationStatusChoices = "retired"
	LocationStatusChoicesStaging         LocationStatusChoices = "staging"
)

// Defines values for LogLevelEnum.
const (
	LogLevelEnumDefault LogLevelEnum = "default"
	LogLevelEnumFailure LogLevelEnum = "failure"
	LogLevelEnumInfo    LogLevelEnum = "info"
	LogLevelEnumSuccess LogLevelEnum = "success"
	LogLevelEnumWarning LogLevelEnum = "warning"
)

// Defines values for ModeEnum.
const (
	ModeEnumAccess    ModeEnum = "access"
	ModeEnumTagged    ModeEnum = "tagged"
	ModeEnumTaggedAll ModeEnum = "tagged-all"
)

// Defines values for NATPolicyStatusLabel.
const (
	NATPolicyStatusLabelActive         NATPolicyStatusLabel = "Active"
	NATPolicyStatusLabelDecommissioned NATPolicyStatusLabel = "Decommissioned"
	NATPolicyStatusLabelStaged         NATPolicyStatusLabel = "Staged"
)

// Defines values for NATPolicyStatusValue.
const (
	NATPolicyStatusValueActive         NATPolicyStatusValue = "active"
	NATPolicyStatusValueDecommissioned NATPolicyStatusValue = "decommissioned"
	NATPolicyStatusValueStaged         NATPolicyStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel.
const (
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabelActive         NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabelDecommissioned NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabelStaged         NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue.
const (
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValueActive         NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue = "active"
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValueDecommissioned NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValueStaged         NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel.
const (
	NATPolicyRuleOriginalDestinationAddressGroupsStatusLabelActive         NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationAddressGroupsStatusLabelDecommissioned NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationAddressGroupsStatusLabelStaged         NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressGroupsStatusValue.
const (
	NATPolicyRuleOriginalDestinationAddressGroupsStatusValueActive         NATPolicyRuleOriginalDestinationAddressGroupsStatusValue = "active"
	NATPolicyRuleOriginalDestinationAddressGroupsStatusValueDecommissioned NATPolicyRuleOriginalDestinationAddressGroupsStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationAddressGroupsStatusValueStaged         NATPolicyRuleOriginalDestinationAddressGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressesStatusLabel.
const (
	NATPolicyRuleOriginalDestinationAddressesStatusLabelActive         NATPolicyRuleOriginalDestinationAddressesStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationAddressesStatusLabelDecommissioned NATPolicyRuleOriginalDestinationAddressesStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationAddressesStatusLabelStaged         NATPolicyRuleOriginalDestinationAddressesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationAddressesStatusValue.
const (
	NATPolicyRuleOriginalDestinationAddressesStatusValueActive         NATPolicyRuleOriginalDestinationAddressesStatusValue = "active"
	NATPolicyRuleOriginalDestinationAddressesStatusValueDecommissioned NATPolicyRuleOriginalDestinationAddressesStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationAddressesStatusValueStaged         NATPolicyRuleOriginalDestinationAddressesStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolAH            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolAN            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolARIS          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolAX25          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolBNA           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCBT           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCFTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPHB          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPNX          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCCP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDX           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDGP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolDSR           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolEGP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolEMCON         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolENCAP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolESP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolEthernet      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolFC            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolFIRE          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolGGP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolGMTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolGRE           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolHIP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolHMP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIATP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolICMP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPR          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDRP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIFMP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGMP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIL            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolINLSP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPCV          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPComp        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPIP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPLT          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPPC          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolIRTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOIP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolL2TP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolLARP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolMTP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolMUX           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolManet         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolN3PC          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolNARP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolNVPII         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPGM           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIM           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIPE          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPNNI          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPRM           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPTP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPUP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolPVP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolQNX           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolRDP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolROHC          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolRVD           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATMON        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCPS          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSDRP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSKIP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSM            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSMP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSNP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSPS           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSRP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSTP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSUNND         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCF           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTLSP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTP            NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolTTP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolUTI           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolVINES         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolVISA          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolVMTP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBMON         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolWESP          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolWSN           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNET          NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocolXTP           NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel.
const (
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabelActive         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabelDecommissioned NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabelStaged         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue.
const (
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValueActive         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue = "active"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValueDecommissioned NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValueStaged         NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel.
const (
	NATPolicyRuleOriginalDestinationServiceGroupsStatusLabelActive         NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationServiceGroupsStatusLabelDecommissioned NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationServiceGroupsStatusLabelStaged         NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServiceGroupsStatusValue.
const (
	NATPolicyRuleOriginalDestinationServiceGroupsStatusValueActive         NATPolicyRuleOriginalDestinationServiceGroupsStatusValue = "active"
	NATPolicyRuleOriginalDestinationServiceGroupsStatusValueDecommissioned NATPolicyRuleOriginalDestinationServiceGroupsStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationServiceGroupsStatusValueStaged         NATPolicyRuleOriginalDestinationServiceGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServicesIpProtocol.
const (
	NATPolicyRuleOriginalDestinationServicesIpProtocolAH            NATPolicyRuleOriginalDestinationServicesIpProtocol = "AH"
	NATPolicyRuleOriginalDestinationServicesIpProtocolAN            NATPolicyRuleOriginalDestinationServicesIpProtocol = "A/N"
	NATPolicyRuleOriginalDestinationServicesIpProtocolARIS          NATPolicyRuleOriginalDestinationServicesIpProtocol = "ARIS"
	NATPolicyRuleOriginalDestinationServicesIpProtocolAX25          NATPolicyRuleOriginalDestinationServicesIpProtocol = "AX.25"
	NATPolicyRuleOriginalDestinationServicesIpProtocolBBNRCCMON     NATPolicyRuleOriginalDestinationServicesIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleOriginalDestinationServicesIpProtocolBNA           NATPolicyRuleOriginalDestinationServicesIpProtocol = "BNA"
	NATPolicyRuleOriginalDestinationServicesIpProtocolBRSATMON      NATPolicyRuleOriginalDestinationServicesIpProtocol = "BR-SAT-MON"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCBT           NATPolicyRuleOriginalDestinationServicesIpProtocol = "CBT"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCFTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "CFTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCHAOS         NATPolicyRuleOriginalDestinationServicesIpProtocol = "CHAOS"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCPHB          NATPolicyRuleOriginalDestinationServicesIpProtocol = "CPHB"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCPNX          NATPolicyRuleOriginalDestinationServicesIpProtocol = "CPNX"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCRTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "CRTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCRUDP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "CRUDP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolCompaqPeer    NATPolicyRuleOriginalDestinationServicesIpProtocol = "Compaq-Peer"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDCCP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "DCCP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDCNMEAS       NATPolicyRuleOriginalDestinationServicesIpProtocol = "DCN-MEAS"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDDP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "DDP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDDX           NATPolicyRuleOriginalDestinationServicesIpProtocol = "DDX"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDGP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "DGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolDSR           NATPolicyRuleOriginalDestinationServicesIpProtocol = "DSR"
	NATPolicyRuleOriginalDestinationServicesIpProtocolEGP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "EGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolEIGRP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "EIGRP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolEMCON         NATPolicyRuleOriginalDestinationServicesIpProtocol = "EMCON"
	NATPolicyRuleOriginalDestinationServicesIpProtocolENCAP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "ENCAP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolESP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "ESP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolETHERIP       NATPolicyRuleOriginalDestinationServicesIpProtocol = "ETHERIP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolEthernet      NATPolicyRuleOriginalDestinationServicesIpProtocol = "Ethernet"
	NATPolicyRuleOriginalDestinationServicesIpProtocolFC            NATPolicyRuleOriginalDestinationServicesIpProtocol = "FC"
	NATPolicyRuleOriginalDestinationServicesIpProtocolFIRE          NATPolicyRuleOriginalDestinationServicesIpProtocol = "FIRE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolGGP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "GGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolGMTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "GMTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolGRE           NATPolicyRuleOriginalDestinationServicesIpProtocol = "GRE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolHIP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "HIP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolHMP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "HMP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIATP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IATP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolICMP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "ICMP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIDPR          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IDPR"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIDPRCMTP      NATPolicyRuleOriginalDestinationServicesIpProtocol = "IDPR-CMTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIDRP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IDRP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIFMP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IFMP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIGMP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IGMP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIGP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "IGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIL            NATPolicyRuleOriginalDestinationServicesIpProtocol = "IL"
	NATPolicyRuleOriginalDestinationServicesIpProtocolINLSP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "I-NLSP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPCV          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPCV"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPComp        NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPComp"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPIP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPIP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPLT          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPLT"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPPC          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPPC"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIPXInIP       NATPolicyRuleOriginalDestinationServicesIpProtocol = "IPX-in-IP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolIRTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "IRTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolISOIP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "ISO-IP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolISOTP4        NATPolicyRuleOriginalDestinationServicesIpProtocol = "ISO-TP4"
	NATPolicyRuleOriginalDestinationServicesIpProtocolKRYPTOLAN     NATPolicyRuleOriginalDestinationServicesIpProtocol = "KRYPTOLAN"
	NATPolicyRuleOriginalDestinationServicesIpProtocolL2TP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "L2TP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolLARP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "LARP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolLEAF1         NATPolicyRuleOriginalDestinationServicesIpProtocol = "LEAF-1"
	NATPolicyRuleOriginalDestinationServicesIpProtocolLEAF2         NATPolicyRuleOriginalDestinationServicesIpProtocol = "LEAF-2"
	NATPolicyRuleOriginalDestinationServicesIpProtocolMERITINP      NATPolicyRuleOriginalDestinationServicesIpProtocol = "MERIT-INP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolMFENSP        NATPolicyRuleOriginalDestinationServicesIpProtocol = "MFE-NSP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolMOBILE        NATPolicyRuleOriginalDestinationServicesIpProtocol = "MOBILE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolMTP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "MTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolMUX           NATPolicyRuleOriginalDestinationServicesIpProtocol = "MUX"
	NATPolicyRuleOriginalDestinationServicesIpProtocolManet         NATPolicyRuleOriginalDestinationServicesIpProtocol = "manet"
	NATPolicyRuleOriginalDestinationServicesIpProtocolN3PC          NATPolicyRuleOriginalDestinationServicesIpProtocol = "3PC"
	NATPolicyRuleOriginalDestinationServicesIpProtocolNARP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "NARP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolNETBLT        NATPolicyRuleOriginalDestinationServicesIpProtocol = "NETBLT"
	NATPolicyRuleOriginalDestinationServicesIpProtocolNSFNETIGP     NATPolicyRuleOriginalDestinationServicesIpProtocol = "NSFNET-IGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolNVPII         NATPolicyRuleOriginalDestinationServicesIpProtocol = "NVP-II"
	NATPolicyRuleOriginalDestinationServicesIpProtocolOSPFIGP       NATPolicyRuleOriginalDestinationServicesIpProtocol = "OSPFIGP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPGM           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PGM"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPIM           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PIM"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPIPE          NATPolicyRuleOriginalDestinationServicesIpProtocol = "PIPE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPNNI          NATPolicyRuleOriginalDestinationServicesIpProtocol = "PNNI"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPRM           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PRM"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPTP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPUP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PUP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolPVP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "PVP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolQNX           NATPolicyRuleOriginalDestinationServicesIpProtocol = "QNX"
	NATPolicyRuleOriginalDestinationServicesIpProtocolRDP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "RDP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolROHC          NATPolicyRuleOriginalDestinationServicesIpProtocol = "ROHC"
	NATPolicyRuleOriginalDestinationServicesIpProtocolRSVP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "RSVP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolRSVPE2EIGNORE NATPolicyRuleOriginalDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolRVD           NATPolicyRuleOriginalDestinationServicesIpProtocol = "RVD"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSATEXPAK      NATPolicyRuleOriginalDestinationServicesIpProtocol = "SAT-EXPAK"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSATMON        NATPolicyRuleOriginalDestinationServicesIpProtocol = "SAT-MON"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSCCSP         NATPolicyRuleOriginalDestinationServicesIpProtocol = "SCC-SP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSCPS          NATPolicyRuleOriginalDestinationServicesIpProtocol = "SCPS"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSCTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "SCTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSDRP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "SDRP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSECUREVMTP    NATPolicyRuleOriginalDestinationServicesIpProtocol = "SECURE-VMTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSKIP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "SKIP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSM            NATPolicyRuleOriginalDestinationServicesIpProtocol = "SM"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSMP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "SMP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSNP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "SNP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSPS           NATPolicyRuleOriginalDestinationServicesIpProtocol = "SPS"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSRP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "SRP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSSCOPMCE      NATPolicyRuleOriginalDestinationServicesIpProtocol = "SSCOPMCE"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSTP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "STP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSUNND         NATPolicyRuleOriginalDestinationServicesIpProtocol = "SUN-ND"
	NATPolicyRuleOriginalDestinationServicesIpProtocolSpriteRPC     NATPolicyRuleOriginalDestinationServicesIpProtocol = "Sprite-RPC"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTCF           NATPolicyRuleOriginalDestinationServicesIpProtocol = "TCF"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTCP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "TCP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTLSP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "TLSP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTP            NATPolicyRuleOriginalDestinationServicesIpProtocol = "TP++"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTRUNK1        NATPolicyRuleOriginalDestinationServicesIpProtocol = "TRUNK-1"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTRUNK2        NATPolicyRuleOriginalDestinationServicesIpProtocol = "TRUNK-2"
	NATPolicyRuleOriginalDestinationServicesIpProtocolTTP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "TTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolUDP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "UDP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolUDPLite       NATPolicyRuleOriginalDestinationServicesIpProtocol = "UDPLite"
	NATPolicyRuleOriginalDestinationServicesIpProtocolUTI           NATPolicyRuleOriginalDestinationServicesIpProtocol = "UTI"
	NATPolicyRuleOriginalDestinationServicesIpProtocolVINES         NATPolicyRuleOriginalDestinationServicesIpProtocol = "VINES"
	NATPolicyRuleOriginalDestinationServicesIpProtocolVISA          NATPolicyRuleOriginalDestinationServicesIpProtocol = "VISA"
	NATPolicyRuleOriginalDestinationServicesIpProtocolVMTP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "VMTP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolWBEXPAK       NATPolicyRuleOriginalDestinationServicesIpProtocol = "WB-EXPAK"
	NATPolicyRuleOriginalDestinationServicesIpProtocolWBMON         NATPolicyRuleOriginalDestinationServicesIpProtocol = "WB-MON"
	NATPolicyRuleOriginalDestinationServicesIpProtocolWESP          NATPolicyRuleOriginalDestinationServicesIpProtocol = "WESP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolWSN           NATPolicyRuleOriginalDestinationServicesIpProtocol = "WSN"
	NATPolicyRuleOriginalDestinationServicesIpProtocolXNET          NATPolicyRuleOriginalDestinationServicesIpProtocol = "XNET"
	NATPolicyRuleOriginalDestinationServicesIpProtocolXNSIDP        NATPolicyRuleOriginalDestinationServicesIpProtocol = "XNS-IDP"
	NATPolicyRuleOriginalDestinationServicesIpProtocolXTP           NATPolicyRuleOriginalDestinationServicesIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleOriginalDestinationServicesStatusLabel.
const (
	NATPolicyRuleOriginalDestinationServicesStatusLabelActive         NATPolicyRuleOriginalDestinationServicesStatusLabel = "Active"
	NATPolicyRuleOriginalDestinationServicesStatusLabelDecommissioned NATPolicyRuleOriginalDestinationServicesStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalDestinationServicesStatusLabelStaged         NATPolicyRuleOriginalDestinationServicesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalDestinationServicesStatusValue.
const (
	NATPolicyRuleOriginalDestinationServicesStatusValueActive         NATPolicyRuleOriginalDestinationServicesStatusValue = "active"
	NATPolicyRuleOriginalDestinationServicesStatusValueDecommissioned NATPolicyRuleOriginalDestinationServicesStatusValue = "decommissioned"
	NATPolicyRuleOriginalDestinationServicesStatusValueStaged         NATPolicyRuleOriginalDestinationServicesStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel.
const (
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabelActive         NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel = "Active"
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabelDecommissioned NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabelStaged         NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue.
const (
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValueActive         NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue = "active"
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValueDecommissioned NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValueStaged         NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressGroupsStatusLabel.
const (
	NATPolicyRuleOriginalSourceAddressGroupsStatusLabelActive         NATPolicyRuleOriginalSourceAddressGroupsStatusLabel = "Active"
	NATPolicyRuleOriginalSourceAddressGroupsStatusLabelDecommissioned NATPolicyRuleOriginalSourceAddressGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceAddressGroupsStatusLabelStaged         NATPolicyRuleOriginalSourceAddressGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressGroupsStatusValue.
const (
	NATPolicyRuleOriginalSourceAddressGroupsStatusValueActive         NATPolicyRuleOriginalSourceAddressGroupsStatusValue = "active"
	NATPolicyRuleOriginalSourceAddressGroupsStatusValueDecommissioned NATPolicyRuleOriginalSourceAddressGroupsStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceAddressGroupsStatusValueStaged         NATPolicyRuleOriginalSourceAddressGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressesStatusLabel.
const (
	NATPolicyRuleOriginalSourceAddressesStatusLabelActive         NATPolicyRuleOriginalSourceAddressesStatusLabel = "Active"
	NATPolicyRuleOriginalSourceAddressesStatusLabelDecommissioned NATPolicyRuleOriginalSourceAddressesStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceAddressesStatusLabelStaged         NATPolicyRuleOriginalSourceAddressesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceAddressesStatusValue.
const (
	NATPolicyRuleOriginalSourceAddressesStatusValueActive         NATPolicyRuleOriginalSourceAddressesStatusValue = "active"
	NATPolicyRuleOriginalSourceAddressesStatusValueDecommissioned NATPolicyRuleOriginalSourceAddressesStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceAddressesStatusValueStaged         NATPolicyRuleOriginalSourceAddressesStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol.
const (
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolAH            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolAN            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolARIS          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolAX25          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolBNA           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCBT           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCFTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCHAOS         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCPHB          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCPNX          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCRTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCRUDP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDCCP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDDP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDDX           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDGP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolDSR           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolEGP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolEIGRP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolEMCON         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolENCAP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolESP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolETHERIP       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolEthernet      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolFC            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolFIRE          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolGGP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolGMTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolGRE           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolHIP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolHMP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIATP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolICMP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPR          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIDRP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIFMP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIGMP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIGP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIL            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolINLSP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPCV          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPComp        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPIP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPLT          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPPC          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolIRTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolISOIP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolISOTP4        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolL2TP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolLARP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF1         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF2         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolMERITINP      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolMFENSP        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolMOBILE        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolMTP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolMUX           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolManet         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolN3PC          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolNARP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolNETBLT        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolNVPII         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPGM           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPIM           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPIPE          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPNNI          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPRM           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPTP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPUP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolPVP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolQNX           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolRDP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolROHC          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolRVD           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSATMON        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSCCSP         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSCPS          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSCTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSDRP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSKIP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSM            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSMP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSNP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSPS           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSRP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSTP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSUNND         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTCF           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTCP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTLSP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTP            NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolTTP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolUDP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolUDPLite       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolUTI           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolVINES         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolVISA          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolVMTP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolWBMON         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolWESP          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolWSN           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolXNET          NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocolXTP           NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel.
const (
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabelActive         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel = "Active"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabelDecommissioned NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabelStaged         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue.
const (
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValueActive         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue = "active"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValueDecommissioned NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValueStaged         NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceServiceGroupsStatusLabel.
const (
	NATPolicyRuleOriginalSourceServiceGroupsStatusLabelActive         NATPolicyRuleOriginalSourceServiceGroupsStatusLabel = "Active"
	NATPolicyRuleOriginalSourceServiceGroupsStatusLabelDecommissioned NATPolicyRuleOriginalSourceServiceGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceServiceGroupsStatusLabelStaged         NATPolicyRuleOriginalSourceServiceGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceServiceGroupsStatusValue.
const (
	NATPolicyRuleOriginalSourceServiceGroupsStatusValueActive         NATPolicyRuleOriginalSourceServiceGroupsStatusValue = "active"
	NATPolicyRuleOriginalSourceServiceGroupsStatusValueDecommissioned NATPolicyRuleOriginalSourceServiceGroupsStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceServiceGroupsStatusValueStaged         NATPolicyRuleOriginalSourceServiceGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleOriginalSourceServicesIpProtocol.
const (
	NATPolicyRuleOriginalSourceServicesIpProtocolAH            NATPolicyRuleOriginalSourceServicesIpProtocol = "AH"
	NATPolicyRuleOriginalSourceServicesIpProtocolAN            NATPolicyRuleOriginalSourceServicesIpProtocol = "A/N"
	NATPolicyRuleOriginalSourceServicesIpProtocolARIS          NATPolicyRuleOriginalSourceServicesIpProtocol = "ARIS"
	NATPolicyRuleOriginalSourceServicesIpProtocolAX25          NATPolicyRuleOriginalSourceServicesIpProtocol = "AX.25"
	NATPolicyRuleOriginalSourceServicesIpProtocolBBNRCCMON     NATPolicyRuleOriginalSourceServicesIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleOriginalSourceServicesIpProtocolBNA           NATPolicyRuleOriginalSourceServicesIpProtocol = "BNA"
	NATPolicyRuleOriginalSourceServicesIpProtocolBRSATMON      NATPolicyRuleOriginalSourceServicesIpProtocol = "BR-SAT-MON"
	NATPolicyRuleOriginalSourceServicesIpProtocolCBT           NATPolicyRuleOriginalSourceServicesIpProtocol = "CBT"
	NATPolicyRuleOriginalSourceServicesIpProtocolCFTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "CFTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolCHAOS         NATPolicyRuleOriginalSourceServicesIpProtocol = "CHAOS"
	NATPolicyRuleOriginalSourceServicesIpProtocolCPHB          NATPolicyRuleOriginalSourceServicesIpProtocol = "CPHB"
	NATPolicyRuleOriginalSourceServicesIpProtocolCPNX          NATPolicyRuleOriginalSourceServicesIpProtocol = "CPNX"
	NATPolicyRuleOriginalSourceServicesIpProtocolCRTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "CRTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolCRUDP         NATPolicyRuleOriginalSourceServicesIpProtocol = "CRUDP"
	NATPolicyRuleOriginalSourceServicesIpProtocolCompaqPeer    NATPolicyRuleOriginalSourceServicesIpProtocol = "Compaq-Peer"
	NATPolicyRuleOriginalSourceServicesIpProtocolDCCP          NATPolicyRuleOriginalSourceServicesIpProtocol = "DCCP"
	NATPolicyRuleOriginalSourceServicesIpProtocolDCNMEAS       NATPolicyRuleOriginalSourceServicesIpProtocol = "DCN-MEAS"
	NATPolicyRuleOriginalSourceServicesIpProtocolDDP           NATPolicyRuleOriginalSourceServicesIpProtocol = "DDP"
	NATPolicyRuleOriginalSourceServicesIpProtocolDDX           NATPolicyRuleOriginalSourceServicesIpProtocol = "DDX"
	NATPolicyRuleOriginalSourceServicesIpProtocolDGP           NATPolicyRuleOriginalSourceServicesIpProtocol = "DGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolDSR           NATPolicyRuleOriginalSourceServicesIpProtocol = "DSR"
	NATPolicyRuleOriginalSourceServicesIpProtocolEGP           NATPolicyRuleOriginalSourceServicesIpProtocol = "EGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolEIGRP         NATPolicyRuleOriginalSourceServicesIpProtocol = "EIGRP"
	NATPolicyRuleOriginalSourceServicesIpProtocolEMCON         NATPolicyRuleOriginalSourceServicesIpProtocol = "EMCON"
	NATPolicyRuleOriginalSourceServicesIpProtocolENCAP         NATPolicyRuleOriginalSourceServicesIpProtocol = "ENCAP"
	NATPolicyRuleOriginalSourceServicesIpProtocolESP           NATPolicyRuleOriginalSourceServicesIpProtocol = "ESP"
	NATPolicyRuleOriginalSourceServicesIpProtocolETHERIP       NATPolicyRuleOriginalSourceServicesIpProtocol = "ETHERIP"
	NATPolicyRuleOriginalSourceServicesIpProtocolEthernet      NATPolicyRuleOriginalSourceServicesIpProtocol = "Ethernet"
	NATPolicyRuleOriginalSourceServicesIpProtocolFC            NATPolicyRuleOriginalSourceServicesIpProtocol = "FC"
	NATPolicyRuleOriginalSourceServicesIpProtocolFIRE          NATPolicyRuleOriginalSourceServicesIpProtocol = "FIRE"
	NATPolicyRuleOriginalSourceServicesIpProtocolGGP           NATPolicyRuleOriginalSourceServicesIpProtocol = "GGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolGMTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "GMTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolGRE           NATPolicyRuleOriginalSourceServicesIpProtocol = "GRE"
	NATPolicyRuleOriginalSourceServicesIpProtocolHIP           NATPolicyRuleOriginalSourceServicesIpProtocol = "HIP"
	NATPolicyRuleOriginalSourceServicesIpProtocolHMP           NATPolicyRuleOriginalSourceServicesIpProtocol = "HMP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIATP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IATP"
	NATPolicyRuleOriginalSourceServicesIpProtocolICMP          NATPolicyRuleOriginalSourceServicesIpProtocol = "ICMP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIDPR          NATPolicyRuleOriginalSourceServicesIpProtocol = "IDPR"
	NATPolicyRuleOriginalSourceServicesIpProtocolIDPRCMTP      NATPolicyRuleOriginalSourceServicesIpProtocol = "IDPR-CMTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIDRP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IDRP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIFMP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IFMP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIGMP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IGMP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIGP           NATPolicyRuleOriginalSourceServicesIpProtocol = "IGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIL            NATPolicyRuleOriginalSourceServicesIpProtocol = "IL"
	NATPolicyRuleOriginalSourceServicesIpProtocolINLSP         NATPolicyRuleOriginalSourceServicesIpProtocol = "I-NLSP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPCV          NATPolicyRuleOriginalSourceServicesIpProtocol = "IPCV"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPComp        NATPolicyRuleOriginalSourceServicesIpProtocol = "IPComp"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPIP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IPIP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPLT          NATPolicyRuleOriginalSourceServicesIpProtocol = "IPLT"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPPC          NATPolicyRuleOriginalSourceServicesIpProtocol = "IPPC"
	NATPolicyRuleOriginalSourceServicesIpProtocolIPXInIP       NATPolicyRuleOriginalSourceServicesIpProtocol = "IPX-in-IP"
	NATPolicyRuleOriginalSourceServicesIpProtocolIRTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "IRTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolISOIP         NATPolicyRuleOriginalSourceServicesIpProtocol = "ISO-IP"
	NATPolicyRuleOriginalSourceServicesIpProtocolISOTP4        NATPolicyRuleOriginalSourceServicesIpProtocol = "ISO-TP4"
	NATPolicyRuleOriginalSourceServicesIpProtocolKRYPTOLAN     NATPolicyRuleOriginalSourceServicesIpProtocol = "KRYPTOLAN"
	NATPolicyRuleOriginalSourceServicesIpProtocolL2TP          NATPolicyRuleOriginalSourceServicesIpProtocol = "L2TP"
	NATPolicyRuleOriginalSourceServicesIpProtocolLARP          NATPolicyRuleOriginalSourceServicesIpProtocol = "LARP"
	NATPolicyRuleOriginalSourceServicesIpProtocolLEAF1         NATPolicyRuleOriginalSourceServicesIpProtocol = "LEAF-1"
	NATPolicyRuleOriginalSourceServicesIpProtocolLEAF2         NATPolicyRuleOriginalSourceServicesIpProtocol = "LEAF-2"
	NATPolicyRuleOriginalSourceServicesIpProtocolMERITINP      NATPolicyRuleOriginalSourceServicesIpProtocol = "MERIT-INP"
	NATPolicyRuleOriginalSourceServicesIpProtocolMFENSP        NATPolicyRuleOriginalSourceServicesIpProtocol = "MFE-NSP"
	NATPolicyRuleOriginalSourceServicesIpProtocolMOBILE        NATPolicyRuleOriginalSourceServicesIpProtocol = "MOBILE"
	NATPolicyRuleOriginalSourceServicesIpProtocolMTP           NATPolicyRuleOriginalSourceServicesIpProtocol = "MTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolMUX           NATPolicyRuleOriginalSourceServicesIpProtocol = "MUX"
	NATPolicyRuleOriginalSourceServicesIpProtocolManet         NATPolicyRuleOriginalSourceServicesIpProtocol = "manet"
	NATPolicyRuleOriginalSourceServicesIpProtocolN3PC          NATPolicyRuleOriginalSourceServicesIpProtocol = "3PC"
	NATPolicyRuleOriginalSourceServicesIpProtocolNARP          NATPolicyRuleOriginalSourceServicesIpProtocol = "NARP"
	NATPolicyRuleOriginalSourceServicesIpProtocolNETBLT        NATPolicyRuleOriginalSourceServicesIpProtocol = "NETBLT"
	NATPolicyRuleOriginalSourceServicesIpProtocolNSFNETIGP     NATPolicyRuleOriginalSourceServicesIpProtocol = "NSFNET-IGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolNVPII         NATPolicyRuleOriginalSourceServicesIpProtocol = "NVP-II"
	NATPolicyRuleOriginalSourceServicesIpProtocolOSPFIGP       NATPolicyRuleOriginalSourceServicesIpProtocol = "OSPFIGP"
	NATPolicyRuleOriginalSourceServicesIpProtocolPGM           NATPolicyRuleOriginalSourceServicesIpProtocol = "PGM"
	NATPolicyRuleOriginalSourceServicesIpProtocolPIM           NATPolicyRuleOriginalSourceServicesIpProtocol = "PIM"
	NATPolicyRuleOriginalSourceServicesIpProtocolPIPE          NATPolicyRuleOriginalSourceServicesIpProtocol = "PIPE"
	NATPolicyRuleOriginalSourceServicesIpProtocolPNNI          NATPolicyRuleOriginalSourceServicesIpProtocol = "PNNI"
	NATPolicyRuleOriginalSourceServicesIpProtocolPRM           NATPolicyRuleOriginalSourceServicesIpProtocol = "PRM"
	NATPolicyRuleOriginalSourceServicesIpProtocolPTP           NATPolicyRuleOriginalSourceServicesIpProtocol = "PTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolPUP           NATPolicyRuleOriginalSourceServicesIpProtocol = "PUP"
	NATPolicyRuleOriginalSourceServicesIpProtocolPVP           NATPolicyRuleOriginalSourceServicesIpProtocol = "PVP"
	NATPolicyRuleOriginalSourceServicesIpProtocolQNX           NATPolicyRuleOriginalSourceServicesIpProtocol = "QNX"
	NATPolicyRuleOriginalSourceServicesIpProtocolRDP           NATPolicyRuleOriginalSourceServicesIpProtocol = "RDP"
	NATPolicyRuleOriginalSourceServicesIpProtocolROHC          NATPolicyRuleOriginalSourceServicesIpProtocol = "ROHC"
	NATPolicyRuleOriginalSourceServicesIpProtocolRSVP          NATPolicyRuleOriginalSourceServicesIpProtocol = "RSVP"
	NATPolicyRuleOriginalSourceServicesIpProtocolRSVPE2EIGNORE NATPolicyRuleOriginalSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleOriginalSourceServicesIpProtocolRVD           NATPolicyRuleOriginalSourceServicesIpProtocol = "RVD"
	NATPolicyRuleOriginalSourceServicesIpProtocolSATEXPAK      NATPolicyRuleOriginalSourceServicesIpProtocol = "SAT-EXPAK"
	NATPolicyRuleOriginalSourceServicesIpProtocolSATMON        NATPolicyRuleOriginalSourceServicesIpProtocol = "SAT-MON"
	NATPolicyRuleOriginalSourceServicesIpProtocolSCCSP         NATPolicyRuleOriginalSourceServicesIpProtocol = "SCC-SP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSCPS          NATPolicyRuleOriginalSourceServicesIpProtocol = "SCPS"
	NATPolicyRuleOriginalSourceServicesIpProtocolSCTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "SCTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSDRP          NATPolicyRuleOriginalSourceServicesIpProtocol = "SDRP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSECUREVMTP    NATPolicyRuleOriginalSourceServicesIpProtocol = "SECURE-VMTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSKIP          NATPolicyRuleOriginalSourceServicesIpProtocol = "SKIP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSM            NATPolicyRuleOriginalSourceServicesIpProtocol = "SM"
	NATPolicyRuleOriginalSourceServicesIpProtocolSMP           NATPolicyRuleOriginalSourceServicesIpProtocol = "SMP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSNP           NATPolicyRuleOriginalSourceServicesIpProtocol = "SNP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSPS           NATPolicyRuleOriginalSourceServicesIpProtocol = "SPS"
	NATPolicyRuleOriginalSourceServicesIpProtocolSRP           NATPolicyRuleOriginalSourceServicesIpProtocol = "SRP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSSCOPMCE      NATPolicyRuleOriginalSourceServicesIpProtocol = "SSCOPMCE"
	NATPolicyRuleOriginalSourceServicesIpProtocolSTP           NATPolicyRuleOriginalSourceServicesIpProtocol = "STP"
	NATPolicyRuleOriginalSourceServicesIpProtocolSUNND         NATPolicyRuleOriginalSourceServicesIpProtocol = "SUN-ND"
	NATPolicyRuleOriginalSourceServicesIpProtocolSpriteRPC     NATPolicyRuleOriginalSourceServicesIpProtocol = "Sprite-RPC"
	NATPolicyRuleOriginalSourceServicesIpProtocolTCF           NATPolicyRuleOriginalSourceServicesIpProtocol = "TCF"
	NATPolicyRuleOriginalSourceServicesIpProtocolTCP           NATPolicyRuleOriginalSourceServicesIpProtocol = "TCP"
	NATPolicyRuleOriginalSourceServicesIpProtocolTLSP          NATPolicyRuleOriginalSourceServicesIpProtocol = "TLSP"
	NATPolicyRuleOriginalSourceServicesIpProtocolTP            NATPolicyRuleOriginalSourceServicesIpProtocol = "TP++"
	NATPolicyRuleOriginalSourceServicesIpProtocolTRUNK1        NATPolicyRuleOriginalSourceServicesIpProtocol = "TRUNK-1"
	NATPolicyRuleOriginalSourceServicesIpProtocolTRUNK2        NATPolicyRuleOriginalSourceServicesIpProtocol = "TRUNK-2"
	NATPolicyRuleOriginalSourceServicesIpProtocolTTP           NATPolicyRuleOriginalSourceServicesIpProtocol = "TTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolUDP           NATPolicyRuleOriginalSourceServicesIpProtocol = "UDP"
	NATPolicyRuleOriginalSourceServicesIpProtocolUDPLite       NATPolicyRuleOriginalSourceServicesIpProtocol = "UDPLite"
	NATPolicyRuleOriginalSourceServicesIpProtocolUTI           NATPolicyRuleOriginalSourceServicesIpProtocol = "UTI"
	NATPolicyRuleOriginalSourceServicesIpProtocolVINES         NATPolicyRuleOriginalSourceServicesIpProtocol = "VINES"
	NATPolicyRuleOriginalSourceServicesIpProtocolVISA          NATPolicyRuleOriginalSourceServicesIpProtocol = "VISA"
	NATPolicyRuleOriginalSourceServicesIpProtocolVMTP          NATPolicyRuleOriginalSourceServicesIpProtocol = "VMTP"
	NATPolicyRuleOriginalSourceServicesIpProtocolWBEXPAK       NATPolicyRuleOriginalSourceServicesIpProtocol = "WB-EXPAK"
	NATPolicyRuleOriginalSourceServicesIpProtocolWBMON         NATPolicyRuleOriginalSourceServicesIpProtocol = "WB-MON"
	NATPolicyRuleOriginalSourceServicesIpProtocolWESP          NATPolicyRuleOriginalSourceServicesIpProtocol = "WESP"
	NATPolicyRuleOriginalSourceServicesIpProtocolWSN           NATPolicyRuleOriginalSourceServicesIpProtocol = "WSN"
	NATPolicyRuleOriginalSourceServicesIpProtocolXNET          NATPolicyRuleOriginalSourceServicesIpProtocol = "XNET"
	NATPolicyRuleOriginalSourceServicesIpProtocolXNSIDP        NATPolicyRuleOriginalSourceServicesIpProtocol = "XNS-IDP"
	NATPolicyRuleOriginalSourceServicesIpProtocolXTP           NATPolicyRuleOriginalSourceServicesIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleOriginalSourceServicesStatusLabel.
const (
	NATPolicyRuleOriginalSourceServicesStatusLabelActive         NATPolicyRuleOriginalSourceServicesStatusLabel = "Active"
	NATPolicyRuleOriginalSourceServicesStatusLabelDecommissioned NATPolicyRuleOriginalSourceServicesStatusLabel = "Decommissioned"
	NATPolicyRuleOriginalSourceServicesStatusLabelStaged         NATPolicyRuleOriginalSourceServicesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleOriginalSourceServicesStatusValue.
const (
	NATPolicyRuleOriginalSourceServicesStatusValueActive         NATPolicyRuleOriginalSourceServicesStatusValue = "active"
	NATPolicyRuleOriginalSourceServicesStatusValueDecommissioned NATPolicyRuleOriginalSourceServicesStatusValue = "decommissioned"
	NATPolicyRuleOriginalSourceServicesStatusValueStaged         NATPolicyRuleOriginalSourceServicesStatusValue = "staged"
)

// Defines values for NATPolicyRuleStatusLabel.
const (
	NATPolicyRuleStatusLabelActive         NATPolicyRuleStatusLabel = "Active"
	NATPolicyRuleStatusLabelDecommissioned NATPolicyRuleStatusLabel = "Decommissioned"
	NATPolicyRuleStatusLabelStaged         NATPolicyRuleStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleStatusValue.
const (
	NATPolicyRuleStatusValueActive         NATPolicyRuleStatusValue = "active"
	NATPolicyRuleStatusValueDecommissioned NATPolicyRuleStatusValue = "decommissioned"
	NATPolicyRuleStatusValueStaged         NATPolicyRuleStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabelActive         NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabelStaged         NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue.
const (
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValueActive         NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue = "active"
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValueDecommissioned NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValueStaged         NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabelActive         NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabelStaged         NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue.
const (
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusValueActive         NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue = "active"
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusValueDecommissioned NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationAddressGroupsStatusValueStaged         NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressesStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationAddressesStatusLabelActive         NATPolicyRuleTranslatedDestinationAddressesStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationAddressesStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationAddressesStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationAddressesStatusLabelStaged         NATPolicyRuleTranslatedDestinationAddressesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationAddressesStatusValue.
const (
	NATPolicyRuleTranslatedDestinationAddressesStatusValueActive         NATPolicyRuleTranslatedDestinationAddressesStatusValue = "active"
	NATPolicyRuleTranslatedDestinationAddressesStatusValueDecommissioned NATPolicyRuleTranslatedDestinationAddressesStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationAddressesStatusValueStaged         NATPolicyRuleTranslatedDestinationAddressesStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAH            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAN            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolARIS          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAX25          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBNA           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCBT           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCFTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPHB          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPNX          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCCP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDX           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDGP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDSR           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEGP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEMCON         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolENCAP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolESP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEthernet      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFC            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFIRE          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGGP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGMTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGRE           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHIP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHMP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIATP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolICMP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPR          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDRP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIFMP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGMP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIL            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolINLSP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPCV          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPComp        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPIP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPLT          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPPC          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIRTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOIP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolL2TP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLARP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMTP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMUX           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolManet         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolN3PC          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNARP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNVPII         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPGM           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIM           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIPE          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPNNI          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPRM           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPTP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPUP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPVP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolQNX           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRDP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolROHC          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRVD           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATMON        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCPS          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSDRP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSKIP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSM            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSMP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSNP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSPS           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSRP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSTP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSUNND         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCF           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTLSP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTP            NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTTP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUTI           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVINES         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVISA          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVMTP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBMON         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWESP          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWSN           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNET          NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXTP           NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabelActive         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabelStaged         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue.
const (
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValueActive         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue = "active"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValueDecommissioned NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValueStaged         NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabelActive         NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabelStaged         NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue.
const (
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusValueActive         NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue = "active"
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusValueDecommissioned NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationServiceGroupsStatusValueStaged         NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServicesIpProtocol.
const (
	NATPolicyRuleTranslatedDestinationServicesIpProtocolAH            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "AH"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolAN            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "A/N"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolARIS          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ARIS"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolAX25          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "AX.25"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolBBNRCCMON     NATPolicyRuleTranslatedDestinationServicesIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolBNA           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "BNA"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolBRSATMON      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "BR-SAT-MON"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCBT           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CBT"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCFTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CFTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCHAOS         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CHAOS"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCPHB          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CPHB"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCPNX          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CPNX"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCRTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CRTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCRUDP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "CRUDP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolCompaqPeer    NATPolicyRuleTranslatedDestinationServicesIpProtocol = "Compaq-Peer"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDCCP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DCCP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDCNMEAS       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DCN-MEAS"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDDP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DDP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDDX           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DDX"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDGP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolDSR           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "DSR"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolEGP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "EGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolEIGRP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "EIGRP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolEMCON         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "EMCON"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolENCAP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ENCAP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolESP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ESP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolETHERIP       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ETHERIP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolEthernet      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "Ethernet"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolFC            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "FC"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolFIRE          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "FIRE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolGGP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "GGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolGMTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "GMTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolGRE           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "GRE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolHIP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "HIP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolHMP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "HMP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIATP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IATP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolICMP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ICMP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIDPR          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IDPR"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIDPRCMTP      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IDPR-CMTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIDRP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IDRP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIFMP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IFMP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIGMP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IGMP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIGP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIL            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IL"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolINLSP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "I-NLSP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPCV          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPCV"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPComp        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPComp"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPIP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPIP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPLT          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPLT"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPPC          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPPC"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIPXInIP       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IPX-in-IP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolIRTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "IRTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolISOIP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ISO-IP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolISOTP4        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ISO-TP4"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolKRYPTOLAN     NATPolicyRuleTranslatedDestinationServicesIpProtocol = "KRYPTOLAN"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolL2TP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "L2TP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolLARP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "LARP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolLEAF1         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "LEAF-1"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolLEAF2         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "LEAF-2"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolMERITINP      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "MERIT-INP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolMFENSP        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "MFE-NSP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolMOBILE        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "MOBILE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolMTP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "MTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolMUX           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "MUX"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolManet         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "manet"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolN3PC          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "3PC"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolNARP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "NARP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolNETBLT        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "NETBLT"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolNSFNETIGP     NATPolicyRuleTranslatedDestinationServicesIpProtocol = "NSFNET-IGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolNVPII         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "NVP-II"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolOSPFIGP       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "OSPFIGP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPGM           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PGM"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPIM           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PIM"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPIPE          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PIPE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPNNI          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PNNI"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPRM           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PRM"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPTP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPUP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PUP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolPVP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "PVP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolQNX           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "QNX"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolRDP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "RDP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolROHC          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "ROHC"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolRSVP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "RSVP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolRSVPE2EIGNORE NATPolicyRuleTranslatedDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolRVD           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "RVD"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSATEXPAK      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SAT-EXPAK"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSATMON        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SAT-MON"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSCCSP         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SCC-SP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSCPS          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SCPS"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSCTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SCTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSDRP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SDRP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSECUREVMTP    NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SECURE-VMTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSKIP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SKIP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSM            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SM"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSMP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SMP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSNP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SNP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSPS           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SPS"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSRP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SRP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSSCOPMCE      NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SSCOPMCE"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSTP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "STP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSUNND         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "SUN-ND"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolSpriteRPC     NATPolicyRuleTranslatedDestinationServicesIpProtocol = "Sprite-RPC"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTCF           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TCF"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTCP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TCP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTLSP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TLSP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTP            NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TP++"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTRUNK1        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TRUNK-1"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTRUNK2        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TRUNK-2"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolTTP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "TTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolUDP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "UDP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolUDPLite       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "UDPLite"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolUTI           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "UTI"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolVINES         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "VINES"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolVISA          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "VISA"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolVMTP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "VMTP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolWBEXPAK       NATPolicyRuleTranslatedDestinationServicesIpProtocol = "WB-EXPAK"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolWBMON         NATPolicyRuleTranslatedDestinationServicesIpProtocol = "WB-MON"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolWESP          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "WESP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolWSN           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "WSN"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolXNET          NATPolicyRuleTranslatedDestinationServicesIpProtocol = "XNET"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolXNSIDP        NATPolicyRuleTranslatedDestinationServicesIpProtocol = "XNS-IDP"
	NATPolicyRuleTranslatedDestinationServicesIpProtocolXTP           NATPolicyRuleTranslatedDestinationServicesIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleTranslatedDestinationServicesStatusLabel.
const (
	NATPolicyRuleTranslatedDestinationServicesStatusLabelActive         NATPolicyRuleTranslatedDestinationServicesStatusLabel = "Active"
	NATPolicyRuleTranslatedDestinationServicesStatusLabelDecommissioned NATPolicyRuleTranslatedDestinationServicesStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedDestinationServicesStatusLabelStaged         NATPolicyRuleTranslatedDestinationServicesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedDestinationServicesStatusValue.
const (
	NATPolicyRuleTranslatedDestinationServicesStatusValueActive         NATPolicyRuleTranslatedDestinationServicesStatusValue = "active"
	NATPolicyRuleTranslatedDestinationServicesStatusValueDecommissioned NATPolicyRuleTranslatedDestinationServicesStatusValue = "decommissioned"
	NATPolicyRuleTranslatedDestinationServicesStatusValueStaged         NATPolicyRuleTranslatedDestinationServicesStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel.
const (
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabelActive         NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabelDecommissioned NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabelStaged         NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue.
const (
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValueActive         NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue = "active"
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValueDecommissioned NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValueStaged         NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel.
const (
	NATPolicyRuleTranslatedSourceAddressGroupsStatusLabelActive         NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceAddressGroupsStatusLabelDecommissioned NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceAddressGroupsStatusLabelStaged         NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressGroupsStatusValue.
const (
	NATPolicyRuleTranslatedSourceAddressGroupsStatusValueActive         NATPolicyRuleTranslatedSourceAddressGroupsStatusValue = "active"
	NATPolicyRuleTranslatedSourceAddressGroupsStatusValueDecommissioned NATPolicyRuleTranslatedSourceAddressGroupsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceAddressGroupsStatusValueStaged         NATPolicyRuleTranslatedSourceAddressGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressesStatusLabel.
const (
	NATPolicyRuleTranslatedSourceAddressesStatusLabelActive         NATPolicyRuleTranslatedSourceAddressesStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceAddressesStatusLabelDecommissioned NATPolicyRuleTranslatedSourceAddressesStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceAddressesStatusLabelStaged         NATPolicyRuleTranslatedSourceAddressesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceAddressesStatusValue.
const (
	NATPolicyRuleTranslatedSourceAddressesStatusValueActive         NATPolicyRuleTranslatedSourceAddressesStatusValue = "active"
	NATPolicyRuleTranslatedSourceAddressesStatusValueDecommissioned NATPolicyRuleTranslatedSourceAddressesStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceAddressesStatusValueStaged         NATPolicyRuleTranslatedSourceAddressesStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol.
const (
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolAH            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolAN            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolARIS          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolAX25          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolBNA           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCBT           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCFTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCHAOS         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPHB          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPNX          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRUDP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCCP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDX           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDGP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolDSR           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolEGP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolEIGRP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolEMCON         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolENCAP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolESP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolETHERIP       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolEthernet      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolFC            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolFIRE          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolGGP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolGMTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolGRE           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolHIP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolHMP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIATP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolICMP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPR          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDRP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIFMP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGMP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIL            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolINLSP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPCV          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPComp        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPIP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPLT          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPPC          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolIRTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOIP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOTP4        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolL2TP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolLARP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF1         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF2         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolMERITINP      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolMFENSP        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolMOBILE        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolMTP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolMUX           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolManet         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolN3PC          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolNARP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolNETBLT        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolNVPII         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPGM           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIM           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIPE          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPNNI          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPRM           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPTP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPUP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolPVP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolQNX           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolRDP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolROHC          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolRVD           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATMON        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCCSP         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCPS          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSDRP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSKIP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSM            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSMP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSNP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSPS           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSRP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSTP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSUNND         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCF           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTLSP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTP            NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolTTP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDPLite       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolUTI           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolVINES         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolVISA          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolVMTP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBMON         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolWESP          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolWSN           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNET          NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocolXTP           NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel.
const (
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabelActive         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabelDecommissioned NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabelStaged         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue.
const (
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValueActive         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue = "active"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValueDecommissioned NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValueStaged         NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel.
const (
	NATPolicyRuleTranslatedSourceServiceGroupsStatusLabelActive         NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceServiceGroupsStatusLabelDecommissioned NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceServiceGroupsStatusLabelStaged         NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServiceGroupsStatusValue.
const (
	NATPolicyRuleTranslatedSourceServiceGroupsStatusValueActive         NATPolicyRuleTranslatedSourceServiceGroupsStatusValue = "active"
	NATPolicyRuleTranslatedSourceServiceGroupsStatusValueDecommissioned NATPolicyRuleTranslatedSourceServiceGroupsStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceServiceGroupsStatusValueStaged         NATPolicyRuleTranslatedSourceServiceGroupsStatusValue = "staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServicesIpProtocol.
const (
	NATPolicyRuleTranslatedSourceServicesIpProtocolAH            NATPolicyRuleTranslatedSourceServicesIpProtocol = "AH"
	NATPolicyRuleTranslatedSourceServicesIpProtocolAN            NATPolicyRuleTranslatedSourceServicesIpProtocol = "A/N"
	NATPolicyRuleTranslatedSourceServicesIpProtocolARIS          NATPolicyRuleTranslatedSourceServicesIpProtocol = "ARIS"
	NATPolicyRuleTranslatedSourceServicesIpProtocolAX25          NATPolicyRuleTranslatedSourceServicesIpProtocol = "AX.25"
	NATPolicyRuleTranslatedSourceServicesIpProtocolBBNRCCMON     NATPolicyRuleTranslatedSourceServicesIpProtocol = "BBN-RCC-MON"
	NATPolicyRuleTranslatedSourceServicesIpProtocolBNA           NATPolicyRuleTranslatedSourceServicesIpProtocol = "BNA"
	NATPolicyRuleTranslatedSourceServicesIpProtocolBRSATMON      NATPolicyRuleTranslatedSourceServicesIpProtocol = "BR-SAT-MON"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCBT           NATPolicyRuleTranslatedSourceServicesIpProtocol = "CBT"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCFTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "CFTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCHAOS         NATPolicyRuleTranslatedSourceServicesIpProtocol = "CHAOS"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCPHB          NATPolicyRuleTranslatedSourceServicesIpProtocol = "CPHB"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCPNX          NATPolicyRuleTranslatedSourceServicesIpProtocol = "CPNX"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCRTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "CRTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCRUDP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "CRUDP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolCompaqPeer    NATPolicyRuleTranslatedSourceServicesIpProtocol = "Compaq-Peer"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDCCP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "DCCP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDCNMEAS       NATPolicyRuleTranslatedSourceServicesIpProtocol = "DCN-MEAS"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDDP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "DDP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDDX           NATPolicyRuleTranslatedSourceServicesIpProtocol = "DDX"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDGP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "DGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolDSR           NATPolicyRuleTranslatedSourceServicesIpProtocol = "DSR"
	NATPolicyRuleTranslatedSourceServicesIpProtocolEGP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "EGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolEIGRP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "EIGRP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolEMCON         NATPolicyRuleTranslatedSourceServicesIpProtocol = "EMCON"
	NATPolicyRuleTranslatedSourceServicesIpProtocolENCAP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "ENCAP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolESP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "ESP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolETHERIP       NATPolicyRuleTranslatedSourceServicesIpProtocol = "ETHERIP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolEthernet      NATPolicyRuleTranslatedSourceServicesIpProtocol = "Ethernet"
	NATPolicyRuleTranslatedSourceServicesIpProtocolFC            NATPolicyRuleTranslatedSourceServicesIpProtocol = "FC"
	NATPolicyRuleTranslatedSourceServicesIpProtocolFIRE          NATPolicyRuleTranslatedSourceServicesIpProtocol = "FIRE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolGGP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "GGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolGMTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "GMTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolGRE           NATPolicyRuleTranslatedSourceServicesIpProtocol = "GRE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolHIP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "HIP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolHMP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "HMP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIATP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IATP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolICMP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "ICMP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIDPR          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IDPR"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIDPRCMTP      NATPolicyRuleTranslatedSourceServicesIpProtocol = "IDPR-CMTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIDRP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IDRP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIFMP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IFMP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIGMP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IGMP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIGP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "IGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIL            NATPolicyRuleTranslatedSourceServicesIpProtocol = "IL"
	NATPolicyRuleTranslatedSourceServicesIpProtocolINLSP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "I-NLSP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPCV          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPCV"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPComp        NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPComp"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPIP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPIP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPLT          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPLT"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPPC          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPPC"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIPXInIP       NATPolicyRuleTranslatedSourceServicesIpProtocol = "IPX-in-IP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolIRTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "IRTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolISOIP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "ISO-IP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolISOTP4        NATPolicyRuleTranslatedSourceServicesIpProtocol = "ISO-TP4"
	NATPolicyRuleTranslatedSourceServicesIpProtocolKRYPTOLAN     NATPolicyRuleTranslatedSourceServicesIpProtocol = "KRYPTOLAN"
	NATPolicyRuleTranslatedSourceServicesIpProtocolL2TP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "L2TP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolLARP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "LARP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolLEAF1         NATPolicyRuleTranslatedSourceServicesIpProtocol = "LEAF-1"
	NATPolicyRuleTranslatedSourceServicesIpProtocolLEAF2         NATPolicyRuleTranslatedSourceServicesIpProtocol = "LEAF-2"
	NATPolicyRuleTranslatedSourceServicesIpProtocolMERITINP      NATPolicyRuleTranslatedSourceServicesIpProtocol = "MERIT-INP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolMFENSP        NATPolicyRuleTranslatedSourceServicesIpProtocol = "MFE-NSP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolMOBILE        NATPolicyRuleTranslatedSourceServicesIpProtocol = "MOBILE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolMTP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "MTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolMUX           NATPolicyRuleTranslatedSourceServicesIpProtocol = "MUX"
	NATPolicyRuleTranslatedSourceServicesIpProtocolManet         NATPolicyRuleTranslatedSourceServicesIpProtocol = "manet"
	NATPolicyRuleTranslatedSourceServicesIpProtocolN3PC          NATPolicyRuleTranslatedSourceServicesIpProtocol = "3PC"
	NATPolicyRuleTranslatedSourceServicesIpProtocolNARP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "NARP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolNETBLT        NATPolicyRuleTranslatedSourceServicesIpProtocol = "NETBLT"
	NATPolicyRuleTranslatedSourceServicesIpProtocolNSFNETIGP     NATPolicyRuleTranslatedSourceServicesIpProtocol = "NSFNET-IGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolNVPII         NATPolicyRuleTranslatedSourceServicesIpProtocol = "NVP-II"
	NATPolicyRuleTranslatedSourceServicesIpProtocolOSPFIGP       NATPolicyRuleTranslatedSourceServicesIpProtocol = "OSPFIGP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPGM           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PGM"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPIM           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PIM"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPIPE          NATPolicyRuleTranslatedSourceServicesIpProtocol = "PIPE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPNNI          NATPolicyRuleTranslatedSourceServicesIpProtocol = "PNNI"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPRM           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PRM"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPTP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPUP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PUP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolPVP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "PVP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolQNX           NATPolicyRuleTranslatedSourceServicesIpProtocol = "QNX"
	NATPolicyRuleTranslatedSourceServicesIpProtocolRDP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "RDP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolROHC          NATPolicyRuleTranslatedSourceServicesIpProtocol = "ROHC"
	NATPolicyRuleTranslatedSourceServicesIpProtocolRSVP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "RSVP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolRSVPE2EIGNORE NATPolicyRuleTranslatedSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolRVD           NATPolicyRuleTranslatedSourceServicesIpProtocol = "RVD"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSATEXPAK      NATPolicyRuleTranslatedSourceServicesIpProtocol = "SAT-EXPAK"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSATMON        NATPolicyRuleTranslatedSourceServicesIpProtocol = "SAT-MON"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSCCSP         NATPolicyRuleTranslatedSourceServicesIpProtocol = "SCC-SP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSCPS          NATPolicyRuleTranslatedSourceServicesIpProtocol = "SCPS"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSCTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "SCTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSDRP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "SDRP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSECUREVMTP    NATPolicyRuleTranslatedSourceServicesIpProtocol = "SECURE-VMTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSKIP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "SKIP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSM            NATPolicyRuleTranslatedSourceServicesIpProtocol = "SM"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSMP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "SMP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSNP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "SNP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSPS           NATPolicyRuleTranslatedSourceServicesIpProtocol = "SPS"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSRP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "SRP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSSCOPMCE      NATPolicyRuleTranslatedSourceServicesIpProtocol = "SSCOPMCE"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSTP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "STP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSUNND         NATPolicyRuleTranslatedSourceServicesIpProtocol = "SUN-ND"
	NATPolicyRuleTranslatedSourceServicesIpProtocolSpriteRPC     NATPolicyRuleTranslatedSourceServicesIpProtocol = "Sprite-RPC"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTCF           NATPolicyRuleTranslatedSourceServicesIpProtocol = "TCF"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTCP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "TCP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTLSP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "TLSP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTP            NATPolicyRuleTranslatedSourceServicesIpProtocol = "TP++"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTRUNK1        NATPolicyRuleTranslatedSourceServicesIpProtocol = "TRUNK-1"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTRUNK2        NATPolicyRuleTranslatedSourceServicesIpProtocol = "TRUNK-2"
	NATPolicyRuleTranslatedSourceServicesIpProtocolTTP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "TTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolUDP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "UDP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolUDPLite       NATPolicyRuleTranslatedSourceServicesIpProtocol = "UDPLite"
	NATPolicyRuleTranslatedSourceServicesIpProtocolUTI           NATPolicyRuleTranslatedSourceServicesIpProtocol = "UTI"
	NATPolicyRuleTranslatedSourceServicesIpProtocolVINES         NATPolicyRuleTranslatedSourceServicesIpProtocol = "VINES"
	NATPolicyRuleTranslatedSourceServicesIpProtocolVISA          NATPolicyRuleTranslatedSourceServicesIpProtocol = "VISA"
	NATPolicyRuleTranslatedSourceServicesIpProtocolVMTP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "VMTP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolWBEXPAK       NATPolicyRuleTranslatedSourceServicesIpProtocol = "WB-EXPAK"
	NATPolicyRuleTranslatedSourceServicesIpProtocolWBMON         NATPolicyRuleTranslatedSourceServicesIpProtocol = "WB-MON"
	NATPolicyRuleTranslatedSourceServicesIpProtocolWESP          NATPolicyRuleTranslatedSourceServicesIpProtocol = "WESP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolWSN           NATPolicyRuleTranslatedSourceServicesIpProtocol = "WSN"
	NATPolicyRuleTranslatedSourceServicesIpProtocolXNET          NATPolicyRuleTranslatedSourceServicesIpProtocol = "XNET"
	NATPolicyRuleTranslatedSourceServicesIpProtocolXNSIDP        NATPolicyRuleTranslatedSourceServicesIpProtocol = "XNS-IDP"
	NATPolicyRuleTranslatedSourceServicesIpProtocolXTP           NATPolicyRuleTranslatedSourceServicesIpProtocol = "XTP"
)

// Defines values for NATPolicyRuleTranslatedSourceServicesStatusLabel.
const (
	NATPolicyRuleTranslatedSourceServicesStatusLabelActive         NATPolicyRuleTranslatedSourceServicesStatusLabel = "Active"
	NATPolicyRuleTranslatedSourceServicesStatusLabelDecommissioned NATPolicyRuleTranslatedSourceServicesStatusLabel = "Decommissioned"
	NATPolicyRuleTranslatedSourceServicesStatusLabelStaged         NATPolicyRuleTranslatedSourceServicesStatusLabel = "Staged"
)

// Defines values for NATPolicyRuleTranslatedSourceServicesStatusValue.
const (
	NATPolicyRuleTranslatedSourceServicesStatusValueActive         NATPolicyRuleTranslatedSourceServicesStatusValue = "active"
	NATPolicyRuleTranslatedSourceServicesStatusValueDecommissioned NATPolicyRuleTranslatedSourceServicesStatusValue = "decommissioned"
	NATPolicyRuleTranslatedSourceServicesStatusValueStaged         NATPolicyRuleTranslatedSourceServicesStatusValue = "staged"
)

// Defines values for NestedJobResultStatusLabel.
const (
	NestedJobResultStatusLabelCompleted NestedJobResultStatusLabel = "Completed"
	NestedJobResultStatusLabelErrored   NestedJobResultStatusLabel = "Errored"
	NestedJobResultStatusLabelFailed    NestedJobResultStatusLabel = "Failed"
	NestedJobResultStatusLabelPending   NestedJobResultStatusLabel = "Pending"
	NestedJobResultStatusLabelRunning   NestedJobResultStatusLabel = "Running"
)

// Defines values for NestedJobResultStatusValue.
const (
	NestedJobResultStatusValueCompleted NestedJobResultStatusValue = "completed"
	NestedJobResultStatusValueErrored   NestedJobResultStatusValue = "errored"
	NestedJobResultStatusValueFailed    NestedJobResultStatusValue = "failed"
	NestedJobResultStatusValuePending   NestedJobResultStatusValue = "pending"
	NestedJobResultStatusValueRunning   NestedJobResultStatusValue = "running"
)

// Defines values for ObjectChangeActionLabel.
const (
	Created ObjectChangeActionLabel = "Created"
	Deleted ObjectChangeActionLabel = "Deleted"
	Updated ObjectChangeActionLabel = "Updated"
)

// Defines values for ObjectChangeActionValue.
const (
	Create ObjectChangeActionValue = "create"
	Delete ObjectChangeActionValue = "delete"
	Update ObjectChangeActionValue = "update"
)

// Defines values for OperatorEnum.
const (
	OperatorEnumDifference   OperatorEnum = "difference"
	OperatorEnumIntersection OperatorEnum = "intersection"
	OperatorEnumUnion        OperatorEnum = "union"
)

// Defines values for OuterUnitEnum.
const (
	OuterUnitEnumIn OuterUnitEnum = "in"
	OuterUnitEnumMm OuterUnitEnum = "mm"
)

// Defines values for PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus.
const (
	PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatusActive         PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus = "active"
	PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatusDecommissioned PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus = "decommissioned"
	PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatusStaged         PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusActive         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAH            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "AH"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAN            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "A/N"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolARIS          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ARIS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolAX25          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "AX.25"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBBNRCCMON     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBNA           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BNA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolBRSATMON      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCBT           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CBT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCFTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CFTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCHAOS         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CHAOS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCPHB          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CPHB"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCPNX          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CPNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCRUDP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "CRUDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolCompaqPeer    PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Compaq-Peer"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDCCP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DCCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDCNMEAS       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DCN-MEAS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDDX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DDX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolDSR           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "DSR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEIGRP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EIGRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEMCON         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "EMCON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolENCAP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ENCAP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolESP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolETHERIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ETHERIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolEthernet      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Ethernet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolFC            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "FC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolFIRE          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "FIRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolGRE           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "GRE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolHIP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "HIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolHMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "HMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIATP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IATP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolICMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ICMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDPR          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDPR"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDPRCMTP      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIFMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IFMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIGMP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IGMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIGP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIL            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IL"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolINLSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "I-NLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPCV          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPCV"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPComp        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPComp"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPLT          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPPC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIPXInIP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IPX-in-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolIRTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "IRTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolISOIP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ISO-IP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolISOTP4        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ISO-TP4"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolKRYPTOLAN     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolL2TP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "L2TP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLEAF1         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LEAF-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolLEAF2         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "LEAF-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMERITINP      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MERIT-INP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMFENSP        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MFE-NSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMOBILE        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MOBILE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolMUX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "MUX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolManet         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "manet"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolN3PC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "3PC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNARP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NARP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNETBLT        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NETBLT"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNSFNETIGP     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolNVPII         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "NVP-II"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolOSPFIGP       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "OSPFIGP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPGM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PGM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPIM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PIM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPIPE          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PIPE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPNNI          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PNNI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPRM           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PRM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPUP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PUP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolPVP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "PVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolQNX           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "QNX"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolROHC          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "ROHC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRSVP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RSVP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRSVPE2EIGNORE PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolRVD           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "RVD"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSATEXPAK      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSATMON        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SAT-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCCSP         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCC-SP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCPS          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSCTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SCTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSDRP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SDRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSECUREVMTP    PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSKIP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SKIP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSM            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SM"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSMP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SMP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSNP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SNP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSPS           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SPS"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSRP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SRP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSSCOPMCE      PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SSCOPMCE"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "STP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSUNND         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "SUN-ND"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolSpriteRPC     PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "Sprite-RPC"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTCF           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TCF"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTCP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TCP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTLSP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TLSP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTP            PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TP++"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTRUNK1        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TRUNK-1"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTRUNK2        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TRUNK-2"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolTTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "TTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUDP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUDPLite       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UDPLite"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolUTI           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "UTI"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVINES         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VINES"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVISA          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VISA"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolVMTP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "VMTP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWBEXPAK       PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WB-EXPAK"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWBMON         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WB-MON"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWESP          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WESP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolWSN           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "WSN"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXNET          PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XNET"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXNSIDP        PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XNS-IDP"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocolXTP           PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus.
const (
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusActive         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "active"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusDecommissioned PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "decommissioned"
	PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatusStaged         PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAH            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAN            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolARIS          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolAX25          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBNA           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCBT           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCFTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCPHB          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCPNX          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCRTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDCCP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDDP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDDX           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDGP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolDSR           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEGP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEMCON         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolENCAP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolESP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolEthernet      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolFC            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolFIRE          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGGP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGMTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolGRE           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolHIP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolHMP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIATP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolICMP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDPR          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIDRP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIFMP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIGMP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIGP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIL            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolINLSP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPCV          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPComp        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPIP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPLT          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPPC          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolIRTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolISOIP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolL2TP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLARP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMTP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolMUX           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolManet         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolN3PC          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNARP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolNVPII         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPGM           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPIM           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPIPE          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPNNI          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPRM           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPTP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPUP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolPVP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolQNX           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRDP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolROHC          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRSVP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolRVD           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSATMON        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCPS          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSCTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSDRP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSKIP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSM            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSMP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSNP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSPS           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSRP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSTP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSUNND         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTCF           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTCP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTLSP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTP            PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolTTP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUDP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolUTI           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVINES         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVISA          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolVMTP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWBMON         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWESP          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolWSN           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXNET          PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocolXTP           PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolAH            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "AH"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolAN            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "A/N"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolARIS          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ARIS"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolAX25          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "AX.25"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolBBNRCCMON     PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolBNA           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BNA"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolBRSATMON      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "BR-SAT-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCBT           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CBT"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCFTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CFTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCHAOS         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CHAOS"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCPHB          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CPHB"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCPNX          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CPNX"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCRTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CRTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCRUDP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "CRUDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolCompaqPeer    PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Compaq-Peer"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDCCP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DCCP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDCNMEAS       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DCN-MEAS"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDDP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDDX           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DDX"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDGP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolDSR           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "DSR"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolEGP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolEIGRP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EIGRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolEMCON         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "EMCON"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolENCAP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ENCAP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolESP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ESP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolETHERIP       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ETHERIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolEthernet      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Ethernet"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolFC            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "FC"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolFIRE          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "FIRE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolGGP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolGMTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolGRE           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "GRE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolHIP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "HIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolHMP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "HMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIATP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IATP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolICMP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ICMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDPR          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDPR"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDPRCMTP      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDPR-CMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIDRP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IDRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIFMP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IFMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIGMP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IGMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIGP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIL            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IL"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolINLSP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "I-NLSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPCV          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPCV"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPComp        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPComp"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPIP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPLT          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPLT"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPPC          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPPC"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIPXInIP       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IPX-in-IP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolIRTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "IRTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolISOIP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ISO-IP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolISOTP4        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ISO-TP4"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolKRYPTOLAN     PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "KRYPTOLAN"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolL2TP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "L2TP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolLARP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LARP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolLEAF1         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LEAF-1"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolLEAF2         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "LEAF-2"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolMERITINP      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MERIT-INP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolMFENSP        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MFE-NSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolMOBILE        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MOBILE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolMTP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolMUX           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "MUX"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolManet         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "manet"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolN3PC          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "3PC"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolNARP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NARP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolNETBLT        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NETBLT"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolNSFNETIGP     PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NSFNET-IGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolNVPII         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "NVP-II"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolOSPFIGP       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "OSPFIGP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPGM           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PGM"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPIM           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PIM"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPIPE          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PIPE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPNNI          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PNNI"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPRM           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PRM"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPTP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPUP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PUP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolPVP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "PVP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolQNX           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "QNX"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolRDP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolROHC          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "ROHC"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolRSVP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RSVP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolRSVPE2EIGNORE PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolRVD           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "RVD"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSATEXPAK      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SAT-EXPAK"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSATMON        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SAT-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCCSP         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCC-SP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCPS          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCPS"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSCTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SCTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSDRP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SDRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSECUREVMTP    PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SECURE-VMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSKIP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SKIP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSM            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SM"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSMP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SMP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSNP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SNP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSPS           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SPS"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSRP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SRP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSSCOPMCE      PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SSCOPMCE"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSTP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "STP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSUNND         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "SUN-ND"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolSpriteRPC     PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "Sprite-RPC"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTCF           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TCF"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTCP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TCP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTLSP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TLSP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTP            PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TP++"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTRUNK1        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TRUNK-1"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTRUNK2        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TRUNK-2"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolTTP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "TTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolUDP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolUDPLite       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UDPLite"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolUTI           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "UTI"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolVINES         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VINES"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolVISA          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VISA"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolVMTP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "VMTP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolWBEXPAK       PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WB-EXPAK"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolWBMON         PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WB-MON"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolWESP          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WESP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolWSN           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "WSN"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolXNET          PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XNET"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolXNSIDP        PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XNS-IDP"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocolXTP           PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus.
const (
	PatchedBulkWritablePolicyRuleRequestDestinationServicesStatusActive         PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus = "active"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesStatusDecommissioned PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestDestinationServicesStatusStaged         PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusActive         PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatusActive         PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceAddressesStatusActive         PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceAddressesStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceAddressesStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatusActive         PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusActive         PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritablePolicyRuleRequestSourceUsersStatus.
const (
	PatchedBulkWritablePolicyRuleRequestSourceUsersStatusActive         PatchedBulkWritablePolicyRuleRequestSourceUsersStatus = "active"
	PatchedBulkWritablePolicyRuleRequestSourceUsersStatusDecommissioned PatchedBulkWritablePolicyRuleRequestSourceUsersStatus = "decommissioned"
	PatchedBulkWritablePolicyRuleRequestSourceUsersStatusStaged         PatchedBulkWritablePolicyRuleRequestSourceUsersStatus = "staged"
)

// Defines values for PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol.
const (
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAH            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "AH"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAN            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "A/N"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolARIS          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ARIS"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolAX25          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "AX.25"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBBNRCCMON     PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BBN-RCC-MON"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBNA           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BNA"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolBRSATMON      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "BR-SAT-MON"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCBT           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CBT"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCFTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CFTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCHAOS         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CHAOS"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCPHB          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CPHB"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCPNX          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CPNX"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCRTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CRTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCRUDP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "CRUDP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolCompaqPeer    PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Compaq-Peer"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDCCP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DCCP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDCNMEAS       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DCN-MEAS"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDDP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DDP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDDX           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DDX"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDGP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolDSR           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "DSR"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEGP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEIGRP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EIGRP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEMCON         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "EMCON"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolENCAP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ENCAP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolESP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ESP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolETHERIP       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ETHERIP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolEthernet      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Ethernet"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolFC            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "FC"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolFIRE          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "FIRE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGGP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGMTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GMTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolGRE           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "GRE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolHIP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "HIP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolHMP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "HMP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIATP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IATP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolICMP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ICMP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDPR          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDPR"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDPRCMTP      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDPR-CMTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIDRP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IDRP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIFMP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IFMP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIGMP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IGMP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIGP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIL            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IL"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolINLSP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "I-NLSP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPCV          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPCV"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPComp        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPComp"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPIP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPIP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPLT          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPLT"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPPC          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPPC"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIPXInIP       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IPX-in-IP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolIRTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "IRTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolISOIP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ISO-IP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolISOTP4        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ISO-TP4"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolKRYPTOLAN     PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "KRYPTOLAN"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolL2TP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "L2TP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLARP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LARP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLEAF1         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LEAF-1"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolLEAF2         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "LEAF-2"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMERITINP      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MERIT-INP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMFENSP        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MFE-NSP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMOBILE        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MOBILE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMTP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolMUX           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "MUX"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolManet         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "manet"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolN3PC          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "3PC"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNARP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NARP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNETBLT        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NETBLT"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNSFNETIGP     PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NSFNET-IGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolNVPII         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "NVP-II"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolOSPFIGP       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "OSPFIGP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPGM           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PGM"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPIM           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PIM"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPIPE          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PIPE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPNNI          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PNNI"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPRM           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PRM"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPTP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPUP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PUP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolPVP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "PVP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolQNX           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "QNX"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRDP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RDP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolROHC          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "ROHC"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRSVP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RSVP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRSVPE2EIGNORE PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolRVD           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "RVD"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSATEXPAK      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SAT-EXPAK"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSATMON        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SAT-MON"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCCSP         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCC-SP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCPS          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCPS"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSCTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SCTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSDRP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SDRP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSECUREVMTP    PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SECURE-VMTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSKIP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SKIP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSM            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SM"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSMP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SMP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSNP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SNP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSPS           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SPS"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSRP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SRP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSSCOPMCE      PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SSCOPMCE"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSTP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "STP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSUNND         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "SUN-ND"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolSpriteRPC     PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "Sprite-RPC"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTCF           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TCF"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTCP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TCP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTLSP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TLSP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTP            PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TP++"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTRUNK1        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TRUNK-1"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTRUNK2        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TRUNK-2"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolTTP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "TTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUDP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UDP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUDPLite       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UDPLite"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolUTI           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "UTI"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVINES         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VINES"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVISA          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VISA"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolVMTP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "VMTP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWBEXPAK       PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WB-EXPAK"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWBMON         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WB-MON"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWESP          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WESP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolWSN           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "WSN"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXNET          PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XNET"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXNSIDP        PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XNS-IDP"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocolXTP           PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol = "XTP"
)

// Defines values for PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus.
const (
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatusActive         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus = "active"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatusDecommissioned PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus = "decommissioned"
	PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatusStaged         PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus = "staged"
)

// Defines values for PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus.
const (
	PatchedBulkWritableUserObjectGroupRequestUserObjectsStatusActive         PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus = "active"
	PatchedBulkWritableUserObjectGroupRequestUserObjectsStatusDecommissioned PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus = "decommissioned"
	PatchedBulkWritableUserObjectGroupRequestUserObjectsStatusStaged         PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus = "staged"
)

// Defines values for PeeringStatusLabel.
const (
	PeeringStatusLabelActive         PeeringStatusLabel = "Active"
	PeeringStatusLabelDecommissioned PeeringStatusLabel = "Decommissioned"
	PeeringStatusLabelDeprovisioning PeeringStatusLabel = "Deprovisioning"
	PeeringStatusLabelOffline        PeeringStatusLabel = "Offline"
	PeeringStatusLabelPlanned        PeeringStatusLabel = "Planned"
	PeeringStatusLabelProvisioning   PeeringStatusLabel = "Provisioning"
)

// Defines values for PeeringStatusValue.
const (
	PeeringStatusValueActive         PeeringStatusValue = "active"
	PeeringStatusValueDecommissioned PeeringStatusValue = "decommissioned"
	PeeringStatusValueDeprovisioning PeeringStatusValue = "deprovisioning"
	PeeringStatusValueOffline        PeeringStatusValue = "offline"
	PeeringStatusValuePlanned        PeeringStatusValue = "planned"
	PeeringStatusValueProvisioning   PeeringStatusValue = "provisioning"
)

// Defines values for PhaseEnum.
const (
	PhaseEnumSinglePhase PhaseEnum = "single-phase"
	PhaseEnumThreePhase  PhaseEnum = "three-phase"
)

// Defines values for PlatformEnum.
const (
	Mattermost PlatformEnum = "mattermost"
)

// Defines values for PolicyStatusLabel.
const (
	PolicyStatusLabelActive         PolicyStatusLabel = "Active"
	PolicyStatusLabelDecommissioned PolicyStatusLabel = "Decommissioned"
	PolicyStatusLabelStaged         PolicyStatusLabel = "Staged"
)

// Defines values for PolicyStatusValue.
const (
	PolicyStatusValueActive         PolicyStatusValue = "active"
	PolicyStatusValueDecommissioned PolicyStatusValue = "decommissioned"
	PolicyStatusValueStaged         PolicyStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel.
const (
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabelActive         PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel = "Active"
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabelDecommissioned PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabelStaged         PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue.
const (
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusValueActive         PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue = "active"
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusValueDecommissioned PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue = "decommissioned"
	PolicyRuleDestinationAddressGroupsAddressObjectsStatusValueStaged         PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationAddressGroupsStatusLabel.
const (
	PolicyRuleDestinationAddressGroupsStatusLabelActive         PolicyRuleDestinationAddressGroupsStatusLabel = "Active"
	PolicyRuleDestinationAddressGroupsStatusLabelDecommissioned PolicyRuleDestinationAddressGroupsStatusLabel = "Decommissioned"
	PolicyRuleDestinationAddressGroupsStatusLabelStaged         PolicyRuleDestinationAddressGroupsStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationAddressGroupsStatusValue.
const (
	PolicyRuleDestinationAddressGroupsStatusValueActive         PolicyRuleDestinationAddressGroupsStatusValue = "active"
	PolicyRuleDestinationAddressGroupsStatusValueDecommissioned PolicyRuleDestinationAddressGroupsStatusValue = "decommissioned"
	PolicyRuleDestinationAddressGroupsStatusValueStaged         PolicyRuleDestinationAddressGroupsStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationAddressesStatusLabel.
const (
	PolicyRuleDestinationAddressesStatusLabelActive         PolicyRuleDestinationAddressesStatusLabel = "Active"
	PolicyRuleDestinationAddressesStatusLabelDecommissioned PolicyRuleDestinationAddressesStatusLabel = "Decommissioned"
	PolicyRuleDestinationAddressesStatusLabelStaged         PolicyRuleDestinationAddressesStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationAddressesStatusValue.
const (
	PolicyRuleDestinationAddressesStatusValueActive         PolicyRuleDestinationAddressesStatusValue = "active"
	PolicyRuleDestinationAddressesStatusValueDecommissioned PolicyRuleDestinationAddressesStatusValue = "decommissioned"
	PolicyRuleDestinationAddressesStatusValueStaged         PolicyRuleDestinationAddressesStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol.
const (
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolAH            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "AH"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolAN            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "A/N"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolARIS          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ARIS"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolAX25          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "AX.25"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolBBNRCCMON     PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "BBN-RCC-MON"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolBNA           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "BNA"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolBRSATMON      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "BR-SAT-MON"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCBT           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CBT"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCFTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CFTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCHAOS         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CHAOS"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCPHB          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CPHB"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCPNX          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CPNX"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCRTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CRTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCRUDP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "CRUDP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolCompaqPeer    PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "Compaq-Peer"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDCCP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DCCP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDCNMEAS       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DCN-MEAS"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDDP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DDP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDDX           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DDX"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDGP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolDSR           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "DSR"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolEGP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "EGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolEIGRP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "EIGRP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolEMCON         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "EMCON"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolENCAP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ENCAP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolESP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ESP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolETHERIP       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ETHERIP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolEthernet      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "Ethernet"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolFC            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "FC"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolFIRE          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "FIRE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolGGP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "GGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolGMTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "GMTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolGRE           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "GRE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolHIP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "HIP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolHMP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "HMP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIATP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IATP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolICMP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ICMP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIDPR          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIDPRCMTP      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IDPR-CMTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIDRP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IDRP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIFMP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IFMP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIGMP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IGMP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIGP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIL            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IL"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolINLSP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "I-NLSP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPCV          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPCV"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPComp        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPComp"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPIP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPIP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPLT          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPLT"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPPC          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPPC"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIPXInIP       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IPX-in-IP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolIRTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "IRTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolISOIP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-IP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolISOTP4        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ISO-TP4"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolKRYPTOLAN     PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "KRYPTOLAN"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolL2TP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "L2TP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolLARP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "LARP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolLEAF1         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-1"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolLEAF2         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "LEAF-2"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolMERITINP      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "MERIT-INP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolMFENSP        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "MFE-NSP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolMOBILE        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "MOBILE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolMTP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "MTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolMUX           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "MUX"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolManet         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "manet"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolN3PC          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "3PC"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolNARP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "NARP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolNETBLT        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "NETBLT"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolNSFNETIGP     PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "NSFNET-IGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolNVPII         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "NVP-II"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolOSPFIGP       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "OSPFIGP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPGM           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PGM"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPIM           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PIM"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPIPE          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PIPE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPNNI          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PNNI"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPRM           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PRM"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPTP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPUP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PUP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolPVP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "PVP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolQNX           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "QNX"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolRDP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "RDP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolROHC          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "ROHC"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolRSVP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolRSVPE2EIGNORE PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolRVD           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "RVD"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSATEXPAK      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-EXPAK"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSATMON        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SAT-MON"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSCCSP         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SCC-SP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSCPS          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SCPS"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSCTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SCTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSDRP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SDRP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSECUREVMTP    PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SECURE-VMTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSKIP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SKIP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSM            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SM"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSMP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SMP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSNP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SNP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSPS           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SPS"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSRP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SRP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSSCOPMCE      PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SSCOPMCE"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSTP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "STP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSUNND         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "SUN-ND"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolSpriteRPC     PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "Sprite-RPC"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTCF           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TCF"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTCP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TCP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTLSP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TLSP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTP            PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TP++"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTRUNK1        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-1"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTRUNK2        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TRUNK-2"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolTTP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "TTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolUDP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "UDP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolUDPLite       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "UDPLite"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolUTI           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "UTI"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolVINES         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "VINES"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolVISA          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "VISA"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolVMTP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "VMTP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolWBEXPAK       PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "WB-EXPAK"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolWBMON         PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "WB-MON"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolWESP          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "WESP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolWSN           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "WSN"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolXNET          PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "XNET"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolXNSIDP        PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "XNS-IDP"
	PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocolXTP           PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol = "XTP"
)

// Defines values for PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel.
const (
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabelActive         PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel = "Active"
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabelDecommissioned PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel = "Decommissioned"
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabelStaged         PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue.
const (
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusValueActive         PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue = "active"
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusValueDecommissioned PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue = "decommissioned"
	PolicyRuleDestinationServiceGroupsServiceObjectsStatusValueStaged         PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationServiceGroupsStatusLabel.
const (
	PolicyRuleDestinationServiceGroupsStatusLabelActive         PolicyRuleDestinationServiceGroupsStatusLabel = "Active"
	PolicyRuleDestinationServiceGroupsStatusLabelDecommissioned PolicyRuleDestinationServiceGroupsStatusLabel = "Decommissioned"
	PolicyRuleDestinationServiceGroupsStatusLabelStaged         PolicyRuleDestinationServiceGroupsStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationServiceGroupsStatusValue.
const (
	PolicyRuleDestinationServiceGroupsStatusValueActive         PolicyRuleDestinationServiceGroupsStatusValue = "active"
	PolicyRuleDestinationServiceGroupsStatusValueDecommissioned PolicyRuleDestinationServiceGroupsStatusValue = "decommissioned"
	PolicyRuleDestinationServiceGroupsStatusValueStaged         PolicyRuleDestinationServiceGroupsStatusValue = "staged"
)

// Defines values for PolicyRuleDestinationServicesIpProtocol.
const (
	PolicyRuleDestinationServicesIpProtocolAH            PolicyRuleDestinationServicesIpProtocol = "AH"
	PolicyRuleDestinationServicesIpProtocolAN            PolicyRuleDestinationServicesIpProtocol = "A/N"
	PolicyRuleDestinationServicesIpProtocolARIS          PolicyRuleDestinationServicesIpProtocol = "ARIS"
	PolicyRuleDestinationServicesIpProtocolAX25          PolicyRuleDestinationServicesIpProtocol = "AX.25"
	PolicyRuleDestinationServicesIpProtocolBBNRCCMON     PolicyRuleDestinationServicesIpProtocol = "BBN-RCC-MON"
	PolicyRuleDestinationServicesIpProtocolBNA           PolicyRuleDestinationServicesIpProtocol = "BNA"
	PolicyRuleDestinationServicesIpProtocolBRSATMON      PolicyRuleDestinationServicesIpProtocol = "BR-SAT-MON"
	PolicyRuleDestinationServicesIpProtocolCBT           PolicyRuleDestinationServicesIpProtocol = "CBT"
	PolicyRuleDestinationServicesIpProtocolCFTP          PolicyRuleDestinationServicesIpProtocol = "CFTP"
	PolicyRuleDestinationServicesIpProtocolCHAOS         PolicyRuleDestinationServicesIpProtocol = "CHAOS"
	PolicyRuleDestinationServicesIpProtocolCPHB          PolicyRuleDestinationServicesIpProtocol = "CPHB"
	PolicyRuleDestinationServicesIpProtocolCPNX          PolicyRuleDestinationServicesIpProtocol = "CPNX"
	PolicyRuleDestinationServicesIpProtocolCRTP          PolicyRuleDestinationServicesIpProtocol = "CRTP"
	PolicyRuleDestinationServicesIpProtocolCRUDP         PolicyRuleDestinationServicesIpProtocol = "CRUDP"
	PolicyRuleDestinationServicesIpProtocolCompaqPeer    PolicyRuleDestinationServicesIpProtocol = "Compaq-Peer"
	PolicyRuleDestinationServicesIpProtocolDCCP          PolicyRuleDestinationServicesIpProtocol = "DCCP"
	PolicyRuleDestinationServicesIpProtocolDCNMEAS       PolicyRuleDestinationServicesIpProtocol = "DCN-MEAS"
	PolicyRuleDestinationServicesIpProtocolDDP           PolicyRuleDestinationServicesIpProtocol = "DDP"
	PolicyRuleDestinationServicesIpProtocolDDX           PolicyRuleDestinationServicesIpProtocol = "DDX"
	PolicyRuleDestinationServicesIpProtocolDGP           PolicyRuleDestinationServicesIpProtocol = "DGP"
	PolicyRuleDestinationServicesIpProtocolDSR           PolicyRuleDestinationServicesIpProtocol = "DSR"
	PolicyRuleDestinationServicesIpProtocolEGP           PolicyRuleDestinationServicesIpProtocol = "EGP"
	PolicyRuleDestinationServicesIpProtocolEIGRP         PolicyRuleDestinationServicesIpProtocol = "EIGRP"
	PolicyRuleDestinationServicesIpProtocolEMCON         PolicyRuleDestinationServicesIpProtocol = "EMCON"
	PolicyRuleDestinationServicesIpProtocolENCAP         PolicyRuleDestinationServicesIpProtocol = "ENCAP"
	PolicyRuleDestinationServicesIpProtocolESP           PolicyRuleDestinationServicesIpProtocol = "ESP"
	PolicyRuleDestinationServicesIpProtocolETHERIP       PolicyRuleDestinationServicesIpProtocol = "ETHERIP"
	PolicyRuleDestinationServicesIpProtocolEthernet      PolicyRuleDestinationServicesIpProtocol = "Ethernet"
	PolicyRuleDestinationServicesIpProtocolFC            PolicyRuleDestinationServicesIpProtocol = "FC"
	PolicyRuleDestinationServicesIpProtocolFIRE          PolicyRuleDestinationServicesIpProtocol = "FIRE"
	PolicyRuleDestinationServicesIpProtocolGGP           PolicyRuleDestinationServicesIpProtocol = "GGP"
	PolicyRuleDestinationServicesIpProtocolGMTP          PolicyRuleDestinationServicesIpProtocol = "GMTP"
	PolicyRuleDestinationServicesIpProtocolGRE           PolicyRuleDestinationServicesIpProtocol = "GRE"
	PolicyRuleDestinationServicesIpProtocolHIP           PolicyRuleDestinationServicesIpProtocol = "HIP"
	PolicyRuleDestinationServicesIpProtocolHMP           PolicyRuleDestinationServicesIpProtocol = "HMP"
	PolicyRuleDestinationServicesIpProtocolIATP          PolicyRuleDestinationServicesIpProtocol = "IATP"
	PolicyRuleDestinationServicesIpProtocolICMP          PolicyRuleDestinationServicesIpProtocol = "ICMP"
	PolicyRuleDestinationServicesIpProtocolIDPR          PolicyRuleDestinationServicesIpProtocol = "IDPR"
	PolicyRuleDestinationServicesIpProtocolIDPRCMTP      PolicyRuleDestinationServicesIpProtocol = "IDPR-CMTP"
	PolicyRuleDestinationServicesIpProtocolIDRP          PolicyRuleDestinationServicesIpProtocol = "IDRP"
	PolicyRuleDestinationServicesIpProtocolIFMP          PolicyRuleDestinationServicesIpProtocol = "IFMP"
	PolicyRuleDestinationServicesIpProtocolIGMP          PolicyRuleDestinationServicesIpProtocol = "IGMP"
	PolicyRuleDestinationServicesIpProtocolIGP           PolicyRuleDestinationServicesIpProtocol = "IGP"
	PolicyRuleDestinationServicesIpProtocolIL            PolicyRuleDestinationServicesIpProtocol = "IL"
	PolicyRuleDestinationServicesIpProtocolINLSP         PolicyRuleDestinationServicesIpProtocol = "I-NLSP"
	PolicyRuleDestinationServicesIpProtocolIPCV          PolicyRuleDestinationServicesIpProtocol = "IPCV"
	PolicyRuleDestinationServicesIpProtocolIPComp        PolicyRuleDestinationServicesIpProtocol = "IPComp"
	PolicyRuleDestinationServicesIpProtocolIPIP          PolicyRuleDestinationServicesIpProtocol = "IPIP"
	PolicyRuleDestinationServicesIpProtocolIPLT          PolicyRuleDestinationServicesIpProtocol = "IPLT"
	PolicyRuleDestinationServicesIpProtocolIPPC          PolicyRuleDestinationServicesIpProtocol = "IPPC"
	PolicyRuleDestinationServicesIpProtocolIPXInIP       PolicyRuleDestinationServicesIpProtocol = "IPX-in-IP"
	PolicyRuleDestinationServicesIpProtocolIRTP          PolicyRuleDestinationServicesIpProtocol = "IRTP"
	PolicyRuleDestinationServicesIpProtocolISOIP         PolicyRuleDestinationServicesIpProtocol = "ISO-IP"
	PolicyRuleDestinationServicesIpProtocolISOTP4        PolicyRuleDestinationServicesIpProtocol = "ISO-TP4"
	PolicyRuleDestinationServicesIpProtocolKRYPTOLAN     PolicyRuleDestinationServicesIpProtocol = "KRYPTOLAN"
	PolicyRuleDestinationServicesIpProtocolL2TP          PolicyRuleDestinationServicesIpProtocol = "L2TP"
	PolicyRuleDestinationServicesIpProtocolLARP          PolicyRuleDestinationServicesIpProtocol = "LARP"
	PolicyRuleDestinationServicesIpProtocolLEAF1         PolicyRuleDestinationServicesIpProtocol = "LEAF-1"
	PolicyRuleDestinationServicesIpProtocolLEAF2         PolicyRuleDestinationServicesIpProtocol = "LEAF-2"
	PolicyRuleDestinationServicesIpProtocolMERITINP      PolicyRuleDestinationServicesIpProtocol = "MERIT-INP"
	PolicyRuleDestinationServicesIpProtocolMFENSP        PolicyRuleDestinationServicesIpProtocol = "MFE-NSP"
	PolicyRuleDestinationServicesIpProtocolMOBILE        PolicyRuleDestinationServicesIpProtocol = "MOBILE"
	PolicyRuleDestinationServicesIpProtocolMTP           PolicyRuleDestinationServicesIpProtocol = "MTP"
	PolicyRuleDestinationServicesIpProtocolMUX           PolicyRuleDestinationServicesIpProtocol = "MUX"
	PolicyRuleDestinationServicesIpProtocolManet         PolicyRuleDestinationServicesIpProtocol = "manet"
	PolicyRuleDestinationServicesIpProtocolN3PC          PolicyRuleDestinationServicesIpProtocol = "3PC"
	PolicyRuleDestinationServicesIpProtocolNARP          PolicyRuleDestinationServicesIpProtocol = "NARP"
	PolicyRuleDestinationServicesIpProtocolNETBLT        PolicyRuleDestinationServicesIpProtocol = "NETBLT"
	PolicyRuleDestinationServicesIpProtocolNSFNETIGP     PolicyRuleDestinationServicesIpProtocol = "NSFNET-IGP"
	PolicyRuleDestinationServicesIpProtocolNVPII         PolicyRuleDestinationServicesIpProtocol = "NVP-II"
	PolicyRuleDestinationServicesIpProtocolOSPFIGP       PolicyRuleDestinationServicesIpProtocol = "OSPFIGP"
	PolicyRuleDestinationServicesIpProtocolPGM           PolicyRuleDestinationServicesIpProtocol = "PGM"
	PolicyRuleDestinationServicesIpProtocolPIM           PolicyRuleDestinationServicesIpProtocol = "PIM"
	PolicyRuleDestinationServicesIpProtocolPIPE          PolicyRuleDestinationServicesIpProtocol = "PIPE"
	PolicyRuleDestinationServicesIpProtocolPNNI          PolicyRuleDestinationServicesIpProtocol = "PNNI"
	PolicyRuleDestinationServicesIpProtocolPRM           PolicyRuleDestinationServicesIpProtocol = "PRM"
	PolicyRuleDestinationServicesIpProtocolPTP           PolicyRuleDestinationServicesIpProtocol = "PTP"
	PolicyRuleDestinationServicesIpProtocolPUP           PolicyRuleDestinationServicesIpProtocol = "PUP"
	PolicyRuleDestinationServicesIpProtocolPVP           PolicyRuleDestinationServicesIpProtocol = "PVP"
	PolicyRuleDestinationServicesIpProtocolQNX           PolicyRuleDestinationServicesIpProtocol = "QNX"
	PolicyRuleDestinationServicesIpProtocolRDP           PolicyRuleDestinationServicesIpProtocol = "RDP"
	PolicyRuleDestinationServicesIpProtocolROHC          PolicyRuleDestinationServicesIpProtocol = "ROHC"
	PolicyRuleDestinationServicesIpProtocolRSVP          PolicyRuleDestinationServicesIpProtocol = "RSVP"
	PolicyRuleDestinationServicesIpProtocolRSVPE2EIGNORE PolicyRuleDestinationServicesIpProtocol = "RSVP-E2E-IGNORE"
	PolicyRuleDestinationServicesIpProtocolRVD           PolicyRuleDestinationServicesIpProtocol = "RVD"
	PolicyRuleDestinationServicesIpProtocolSATEXPAK      PolicyRuleDestinationServicesIpProtocol = "SAT-EXPAK"
	PolicyRuleDestinationServicesIpProtocolSATMON        PolicyRuleDestinationServicesIpProtocol = "SAT-MON"
	PolicyRuleDestinationServicesIpProtocolSCCSP         PolicyRuleDestinationServicesIpProtocol = "SCC-SP"
	PolicyRuleDestinationServicesIpProtocolSCPS          PolicyRuleDestinationServicesIpProtocol = "SCPS"
	PolicyRuleDestinationServicesIpProtocolSCTP          PolicyRuleDestinationServicesIpProtocol = "SCTP"
	PolicyRuleDestinationServicesIpProtocolSDRP          PolicyRuleDestinationServicesIpProtocol = "SDRP"
	PolicyRuleDestinationServicesIpProtocolSECUREVMTP    PolicyRuleDestinationServicesIpProtocol = "SECURE-VMTP"
	PolicyRuleDestinationServicesIpProtocolSKIP          PolicyRuleDestinationServicesIpProtocol = "SKIP"
	PolicyRuleDestinationServicesIpProtocolSM            PolicyRuleDestinationServicesIpProtocol = "SM"
	PolicyRuleDestinationServicesIpProtocolSMP           PolicyRuleDestinationServicesIpProtocol = "SMP"
	PolicyRuleDestinationServicesIpProtocolSNP           PolicyRuleDestinationServicesIpProtocol = "SNP"
	PolicyRuleDestinationServicesIpProtocolSPS           PolicyRuleDestinationServicesIpProtocol = "SPS"
	PolicyRuleDestinationServicesIpProtocolSRP           PolicyRuleDestinationServicesIpProtocol = "SRP"
	PolicyRuleDestinationServicesIpProtocolSSCOPMCE      PolicyRuleDestinationServicesIpProtocol = "SSCOPMCE"
	PolicyRuleDestinationServicesIpProtocolSTP           PolicyRuleDestinationServicesIpProtocol = "STP"
	PolicyRuleDestinationServicesIpProtocolSUNND         PolicyRuleDestinationServicesIpProtocol = "SUN-ND"
	PolicyRuleDestinationServicesIpProtocolSpriteRPC     PolicyRuleDestinationServicesIpProtocol = "Sprite-RPC"
	PolicyRuleDestinationServicesIpProtocolTCF           PolicyRuleDestinationServicesIpProtocol = "TCF"
	PolicyRuleDestinationServicesIpProtocolTCP           PolicyRuleDestinationServicesIpProtocol = "TCP"
	PolicyRuleDestinationServicesIpProtocolTLSP          PolicyRuleDestinationServicesIpProtocol = "TLSP"
	PolicyRuleDestinationServicesIpProtocolTP            PolicyRuleDestinationServicesIpProtocol = "TP++"
	PolicyRuleDestinationServicesIpProtocolTRUNK1        PolicyRuleDestinationServicesIpProtocol = "TRUNK-1"
	PolicyRuleDestinationServicesIpProtocolTRUNK2        PolicyRuleDestinationServicesIpProtocol = "TRUNK-2"
	PolicyRuleDestinationServicesIpProtocolTTP           PolicyRuleDestinationServicesIpProtocol = "TTP"
	PolicyRuleDestinationServicesIpProtocolUDP           PolicyRuleDestinationServicesIpProtocol = "UDP"
	PolicyRuleDestinationServicesIpProtocolUDPLite       PolicyRuleDestinationServicesIpProtocol = "UDPLite"
	PolicyRuleDestinationServicesIpProtocolUTI           PolicyRuleDestinationServicesIpProtocol = "UTI"
	PolicyRuleDestinationServicesIpProtocolVINES         PolicyRuleDestinationServicesIpProtocol = "VINES"
	PolicyRuleDestinationServicesIpProtocolVISA          PolicyRuleDestinationServicesIpProtocol = "VISA"
	PolicyRuleDestinationServicesIpProtocolVMTP          PolicyRuleDestinationServicesIpProtocol = "VMTP"
	PolicyRuleDestinationServicesIpProtocolWBEXPAK       PolicyRuleDestinationServicesIpProtocol = "WB-EXPAK"
	PolicyRuleDestinationServicesIpProtocolWBMON         PolicyRuleDestinationServicesIpProtocol = "WB-MON"
	PolicyRuleDestinationServicesIpProtocolWESP          PolicyRuleDestinationServicesIpProtocol = "WESP"
	PolicyRuleDestinationServicesIpProtocolWSN           PolicyRuleDestinationServicesIpProtocol = "WSN"
	PolicyRuleDestinationServicesIpProtocolXNET          PolicyRuleDestinationServicesIpProtocol = "XNET"
	PolicyRuleDestinationServicesIpProtocolXNSIDP        PolicyRuleDestinationServicesIpProtocol = "XNS-IDP"
	PolicyRuleDestinationServicesIpProtocolXTP           PolicyRuleDestinationServicesIpProtocol = "XTP"
)

// Defines values for PolicyRuleDestinationServicesStatusLabel.
const (
	PolicyRuleDestinationServicesStatusLabelActive         PolicyRuleDestinationServicesStatusLabel = "Active"
	PolicyRuleDestinationServicesStatusLabelDecommissioned PolicyRuleDestinationServicesStatusLabel = "Decommissioned"
	PolicyRuleDestinationServicesStatusLabelStaged         PolicyRuleDestinationServicesStatusLabel = "Staged"
)

// Defines values for PolicyRuleDestinationServicesStatusValue.
const (
	PolicyRuleDestinationServicesStatusValueActive         PolicyRuleDestinationServicesStatusValue = "active"
	PolicyRuleDestinationServicesStatusValueDecommissioned PolicyRuleDestinationServicesStatusValue = "decommissioned"
	PolicyRuleDestinationServicesStatusValueStaged         PolicyRuleDestinationServicesStatusValue = "staged"
)

// Defines values for PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel.
const (
	PolicyRuleSourceAddressGroupsAddressObjectsStatusLabelActive         PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel = "Active"
	PolicyRuleSourceAddressGroupsAddressObjectsStatusLabelDecommissioned PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel = "Decommissioned"
	PolicyRuleSourceAddressGroupsAddressObjectsStatusLabelStaged         PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceAddressGroupsAddressObjectsStatusValue.
const (
	PolicyRuleSourceAddressGroupsAddressObjectsStatusValueActive         PolicyRuleSourceAddressGroupsAddressObjectsStatusValue = "active"
	PolicyRuleSourceAddressGroupsAddressObjectsStatusValueDecommissioned PolicyRuleSourceAddressGroupsAddressObjectsStatusValue = "decommissioned"
	PolicyRuleSourceAddressGroupsAddressObjectsStatusValueStaged         PolicyRuleSourceAddressGroupsAddressObjectsStatusValue = "staged"
)

// Defines values for PolicyRuleSourceAddressGroupsStatusLabel.
const (
	PolicyRuleSourceAddressGroupsStatusLabelActive         PolicyRuleSourceAddressGroupsStatusLabel = "Active"
	PolicyRuleSourceAddressGroupsStatusLabelDecommissioned PolicyRuleSourceAddressGroupsStatusLabel = "Decommissioned"
	PolicyRuleSourceAddressGroupsStatusLabelStaged         PolicyRuleSourceAddressGroupsStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceAddressGroupsStatusValue.
const (
	PolicyRuleSourceAddressGroupsStatusValueActive         PolicyRuleSourceAddressGroupsStatusValue = "active"
	PolicyRuleSourceAddressGroupsStatusValueDecommissioned PolicyRuleSourceAddressGroupsStatusValue = "decommissioned"
	PolicyRuleSourceAddressGroupsStatusValueStaged         PolicyRuleSourceAddressGroupsStatusValue = "staged"
)

// Defines values for PolicyRuleSourceAddressesStatusLabel.
const (
	PolicyRuleSourceAddressesStatusLabelActive         PolicyRuleSourceAddressesStatusLabel = "Active"
	PolicyRuleSourceAddressesStatusLabelDecommissioned PolicyRuleSourceAddressesStatusLabel = "Decommissioned"
	PolicyRuleSourceAddressesStatusLabelStaged         PolicyRuleSourceAddressesStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceAddressesStatusValue.
const (
	PolicyRuleSourceAddressesStatusValueActive         PolicyRuleSourceAddressesStatusValue = "active"
	PolicyRuleSourceAddressesStatusValueDecommissioned PolicyRuleSourceAddressesStatusValue = "decommissioned"
	PolicyRuleSourceAddressesStatusValueStaged         PolicyRuleSourceAddressesStatusValue = "staged"
)

// Defines values for PolicyRuleSourceUserGroupsStatusLabel.
const (
	PolicyRuleSourceUserGroupsStatusLabelActive         PolicyRuleSourceUserGroupsStatusLabel = "Active"
	PolicyRuleSourceUserGroupsStatusLabelDecommissioned PolicyRuleSourceUserGroupsStatusLabel = "Decommissioned"
	PolicyRuleSourceUserGroupsStatusLabelStaged         PolicyRuleSourceUserGroupsStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceUserGroupsStatusValue.
const (
	PolicyRuleSourceUserGroupsStatusValueActive         PolicyRuleSourceUserGroupsStatusValue = "active"
	PolicyRuleSourceUserGroupsStatusValueDecommissioned PolicyRuleSourceUserGroupsStatusValue = "decommissioned"
	PolicyRuleSourceUserGroupsStatusValueStaged         PolicyRuleSourceUserGroupsStatusValue = "staged"
)

// Defines values for PolicyRuleSourceUserGroupsUserObjectsStatusLabel.
const (
	PolicyRuleSourceUserGroupsUserObjectsStatusLabelActive         PolicyRuleSourceUserGroupsUserObjectsStatusLabel = "Active"
	PolicyRuleSourceUserGroupsUserObjectsStatusLabelDecommissioned PolicyRuleSourceUserGroupsUserObjectsStatusLabel = "Decommissioned"
	PolicyRuleSourceUserGroupsUserObjectsStatusLabelStaged         PolicyRuleSourceUserGroupsUserObjectsStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceUserGroupsUserObjectsStatusValue.
const (
	PolicyRuleSourceUserGroupsUserObjectsStatusValueActive         PolicyRuleSourceUserGroupsUserObjectsStatusValue = "active"
	PolicyRuleSourceUserGroupsUserObjectsStatusValueDecommissioned PolicyRuleSourceUserGroupsUserObjectsStatusValue = "decommissioned"
	PolicyRuleSourceUserGroupsUserObjectsStatusValueStaged         PolicyRuleSourceUserGroupsUserObjectsStatusValue = "staged"
)

// Defines values for PolicyRuleSourceUsersStatusLabel.
const (
	PolicyRuleSourceUsersStatusLabelActive         PolicyRuleSourceUsersStatusLabel = "Active"
	PolicyRuleSourceUsersStatusLabelDecommissioned PolicyRuleSourceUsersStatusLabel = "Decommissioned"
	PolicyRuleSourceUsersStatusLabelStaged         PolicyRuleSourceUsersStatusLabel = "Staged"
)

// Defines values for PolicyRuleSourceUsersStatusValue.
const (
	PolicyRuleSourceUsersStatusValueActive         PolicyRuleSourceUsersStatusValue = "active"
	PolicyRuleSourceUsersStatusValueDecommissioned PolicyRuleSourceUsersStatusValue = "decommissioned"
	PolicyRuleSourceUsersStatusValueStaged         PolicyRuleSourceUsersStatusValue = "staged"
)

// Defines values for PolicyRuleStatusLabel.
const (
	PolicyRuleStatusLabelActive         PolicyRuleStatusLabel = "Active"
	PolicyRuleStatusLabelDecommissioned PolicyRuleStatusLabel = "Decommissioned"
	PolicyRuleStatusLabelStaged         PolicyRuleStatusLabel = "Staged"
)

// Defines values for PolicyRuleStatusValue.
const (
	PolicyRuleStatusValueActive         PolicyRuleStatusValue = "active"
	PolicyRuleStatusValueDecommissioned PolicyRuleStatusValue = "decommissioned"
	PolicyRuleStatusValueStaged         PolicyRuleStatusValue = "staged"
)

// Defines values for PortTypeChoices.
const (
	PortTypeChoicesBnc       PortTypeChoices = "bnc"
	PortTypeChoicesCs        PortTypeChoices = "cs"
	PortTypeChoicesFc        PortTypeChoices = "fc"
	PortTypeChoicesGg45      PortTypeChoices = "gg45"
	PortTypeChoicesLc        PortTypeChoices = "lc"
	PortTypeChoicesLcApc     PortTypeChoices = "lc-apc"
	PortTypeChoicesLsh       PortTypeChoices = "lsh"
	PortTypeChoicesLshApc    PortTypeChoices = "lsh-apc"
	PortTypeChoicesMpo       PortTypeChoices = "mpo"
	PortTypeChoicesMrj21     PortTypeChoices = "mrj21"
	PortTypeChoicesMtrj      PortTypeChoices = "mtrj"
	PortTypeChoicesN110Punch PortTypeChoices = "110-punch"
	PortTypeChoicesN8p2c     PortTypeChoices = "8p2c"
	PortTypeChoicesN8p4c     PortTypeChoices = "8p4c"
	PortTypeChoicesN8p6c     PortTypeChoices = "8p6c"
	PortTypeChoicesN8p8c     PortTypeChoices = "8p8c"
	PortTypeChoicesSc        PortTypeChoices = "sc"
	PortTypeChoicesScApc     PortTypeChoices = "sc-apc"
	PortTypeChoicesSn        PortTypeChoices = "sn"
	PortTypeChoicesSplice    PortTypeChoices = "splice"
	PortTypeChoicesSt        PortTypeChoices = "st"
	PortTypeChoicesTera1p    PortTypeChoices = "tera-1p"
	PortTypeChoicesTera2p    PortTypeChoices = "tera-2p"
	PortTypeChoicesTera4p    PortTypeChoices = "tera-4p"
	PortTypeChoicesUrmP2     PortTypeChoices = "urm-p2"
	PortTypeChoicesUrmP4     PortTypeChoices = "urm-p4"
	PortTypeChoicesUrmP8     PortTypeChoices = "urm-p8"
)

// Defines values for PowerFeedPhaseLabel.
const (
	PowerFeedPhaseLabelSinglePhase PowerFeedPhaseLabel = "Single phase"
	PowerFeedPhaseLabelThreePhase  PowerFeedPhaseLabel = "Three-phase"
)

// Defines values for PowerFeedPhaseValue.
const (
	SinglePhase PowerFeedPhaseValue = "single-phase"
	ThreePhase  PowerFeedPhaseValue = "three-phase"
)

// Defines values for PowerFeedStatusLabel.
const (
	PowerFeedStatusLabelActive  PowerFeedStatusLabel = "Active"
	PowerFeedStatusLabelFailed  PowerFeedStatusLabel = "Failed"
	PowerFeedStatusLabelOffline PowerFeedStatusLabel = "Offline"
	PowerFeedStatusLabelPlanned PowerFeedStatusLabel = "Planned"
)

// Defines values for PowerFeedStatusValue.
const (
	PowerFeedStatusValueActive  PowerFeedStatusValue = "active"
	PowerFeedStatusValueFailed  PowerFeedStatusValue = "failed"
	PowerFeedStatusValueOffline PowerFeedStatusValue = "offline"
	PowerFeedStatusValuePlanned PowerFeedStatusValue = "planned"
)

// Defines values for PowerFeedSupplyLabel.
const (
	AC PowerFeedSupplyLabel = "AC"
	DC PowerFeedSupplyLabel = "DC"
)

// Defines values for PowerFeedSupplyValue.
const (
	PowerFeedSupplyValueAc PowerFeedSupplyValue = "ac"
	PowerFeedSupplyValueDc PowerFeedSupplyValue = "dc"
)

// Defines values for PowerFeedTypeLabel.
const (
	PowerFeedTypeLabelPrimary   PowerFeedTypeLabel = "Primary"
	PowerFeedTypeLabelRedundant PowerFeedTypeLabel = "Redundant"
)

// Defines values for PowerFeedTypeValue.
const (
	PowerFeedTypeValuePrimary   PowerFeedTypeValue = "primary"
	PowerFeedTypeValueRedundant PowerFeedTypeValue = "redundant"
)

// Defines values for PowerFeedStatusChoices.
const (
	PowerFeedStatusChoicesActive  PowerFeedStatusChoices = "active"
	PowerFeedStatusChoicesFailed  PowerFeedStatusChoices = "failed"
	PowerFeedStatusChoicesOffline PowerFeedStatusChoices = "offline"
	PowerFeedStatusChoicesPlanned PowerFeedStatusChoices = "planned"
)

// Defines values for PowerFeedTypeChoices.
const (
	Primary   PowerFeedTypeChoices = "primary"
	Redundant PowerFeedTypeChoices = "redundant"
)

// Defines values for PowerOutletFeedLegLabel.
const (
	PowerOutletFeedLegLabelA PowerOutletFeedLegLabel = "A"
	PowerOutletFeedLegLabelB PowerOutletFeedLegLabel = "B"
	PowerOutletFeedLegLabelC PowerOutletFeedLegLabel = "C"
)

// Defines values for PowerOutletFeedLegValue.
const (
	PowerOutletFeedLegValueA PowerOutletFeedLegValue = "A"
	PowerOutletFeedLegValueB PowerOutletFeedLegValue = "B"
	PowerOutletFeedLegValueC PowerOutletFeedLegValue = "C"
)

// Defines values for PowerOutletTypeLabel.
const (
	PowerOutletTypeLabelC13             PowerOutletTypeLabel = "C13"
	PowerOutletTypeLabelC15             PowerOutletTypeLabel = "C15"
	PowerOutletTypeLabelC19             PowerOutletTypeLabel = "C19"
	PowerOutletTypeLabelC5              PowerOutletTypeLabel = "C5"
	PowerOutletTypeLabelC7              PowerOutletTypeLabel = "C7"
	PowerOutletTypeLabelCS6360C         PowerOutletTypeLabel = "CS6360C"
	PowerOutletTypeLabelCS6364C         PowerOutletTypeLabel = "CS6364C"
	PowerOutletTypeLabelCS8164C         PowerOutletTypeLabel = "CS8164C"
	PowerOutletTypeLabelCS8264C         PowerOutletTypeLabel = "CS8264C"
	PowerOutletTypeLabelCS8364C         PowerOutletTypeLabel = "CS8364C"
	PowerOutletTypeLabelCS8464C         PowerOutletTypeLabel = "CS8464C"
	PowerOutletTypeLabelHDOTCx          PowerOutletTypeLabel = "HDOT Cx"
	PowerOutletTypeLabelITATypeECEE75   PowerOutletTypeLabel = "ITA Type E (CEE7/5)"
	PowerOutletTypeLabelITATypeFCEE73   PowerOutletTypeLabel = "ITA Type F (CEE7/3)"
	PowerOutletTypeLabelITATypeGBS1363  PowerOutletTypeLabel = "ITA Type G (BS 1363)"
	PowerOutletTypeLabelITATypeH        PowerOutletTypeLabel = "ITA Type H"
	PowerOutletTypeLabelITATypeI        PowerOutletTypeLabel = "ITA Type I"
	PowerOutletTypeLabelITATypeJ        PowerOutletTypeLabel = "ITA Type J"
	PowerOutletTypeLabelITATypeK        PowerOutletTypeLabel = "ITA Type K"
	PowerOutletTypeLabelITATypeLCEI2350 PowerOutletTypeLabel = "ITA Type L (CEI 23-50)"
	PowerOutletTypeLabelITATypeMBS546   PowerOutletTypeLabel = "ITA Type M (BS 546)"
	PowerOutletTypeLabelITATypeN        PowerOutletTypeLabel = "ITA Type N"
	PowerOutletTypeLabelITATypeO        PowerOutletTypeLabel = "ITA Type O"
	PowerOutletTypeLabelN2PE4H          PowerOutletTypeLabel = "2P+E 4H"
	PowerOutletTypeLabelN2PE6H          PowerOutletTypeLabel = "2P+E 6H"
	PowerOutletTypeLabelN2PE9H          PowerOutletTypeLabel = "2P+E 9H"
	PowerOutletTypeLabelN3PE4H          PowerOutletTypeLabel = "3P+E 4H"
	PowerOutletTypeLabelN3PE6H          PowerOutletTypeLabel = "3P+E 6H"
	PowerOutletTypeLabelN3PE9H          PowerOutletTypeLabel = "3P+E 9H"
	PowerOutletTypeLabelN3PNE4H         PowerOutletTypeLabel = "3P+N+E 4H"
	PowerOutletTypeLabelN3PNE6H         PowerOutletTypeLabel = "3P+N+E 6H"
	PowerOutletTypeLabelN3PNE9H         PowerOutletTypeLabel = "3P+N+E 9H"
	PowerOutletTypeLabelNEMA1030R       PowerOutletTypeLabel = "NEMA 10-30R"
	PowerOutletTypeLabelNEMA1050R       PowerOutletTypeLabel = "NEMA 10-50R"
	PowerOutletTypeLabelNEMA115R        PowerOutletTypeLabel = "NEMA 1-15R"
	PowerOutletTypeLabelNEMA1420R       PowerOutletTypeLabel = "NEMA 14-20R"
	PowerOutletTypeLabelNEMA1430R       PowerOutletTypeLabel = "NEMA 14-30R"
	PowerOutletTypeLabelNEMA1450R       PowerOutletTypeLabel = "NEMA 14-50R"
	PowerOutletTypeLabelNEMA1460R       PowerOutletTypeLabel = "NEMA 14-60R"
	PowerOutletTypeLabelNEMA1515R       PowerOutletTypeLabel = "NEMA 15-15R"
	PowerOutletTypeLabelNEMA1520R       PowerOutletTypeLabel = "NEMA 15-20R"
	PowerOutletTypeLabelNEMA1530R       PowerOutletTypeLabel = "NEMA 15-30R"
	PowerOutletTypeLabelNEMA1550R       PowerOutletTypeLabel = "NEMA 15-50R"
	PowerOutletTypeLabelNEMA1560R       PowerOutletTypeLabel = "NEMA 15-60R"
	PowerOutletTypeLabelNEMA515R        PowerOutletTypeLabel = "NEMA 5-15R"
	PowerOutletTypeLabelNEMA520R        PowerOutletTypeLabel = "NEMA 5-20R"
	PowerOutletTypeLabelNEMA530R        PowerOutletTypeLabel = "NEMA 5-30R"
	PowerOutletTypeLabelNEMA550R        PowerOutletTypeLabel = "NEMA 5-50R"
	PowerOutletTypeLabelNEMA615R        PowerOutletTypeLabel = "NEMA 6-15R"
	PowerOutletTypeLabelNEMA620R        PowerOutletTypeLabel = "NEMA 6-20R"
	PowerOutletTypeLabelNEMA630R        PowerOutletTypeLabel = "NEMA 6-30R"
	PowerOutletTypeLabelNEMA650R        PowerOutletTypeLabel = "NEMA 6-50R"
	PowerOutletTypeLabelNEMAL1030R      PowerOutletTypeLabel = "NEMA L10-30R"
	PowerOutletTypeLabelNEMAL115R       PowerOutletTypeLabel = "NEMA L1-15R"
	PowerOutletTypeLabelNEMAL1420R      PowerOutletTypeLabel = "NEMA L14-20R"
	PowerOutletTypeLabelNEMAL1430R      PowerOutletTypeLabel = "NEMA L14-30R"
	PowerOutletTypeLabelNEMAL1450R      PowerOutletTypeLabel = "NEMA L14-50R"
	PowerOutletTypeLabelNEMAL1460R      PowerOutletTypeLabel = "NEMA L14-60R"
	PowerOutletTypeLabelNEMAL1520R      PowerOutletTypeLabel = "NEMA L15-20R"
	PowerOutletTypeLabelNEMAL1530R      PowerOutletTypeLabel = "NEMA L15-30R"
	PowerOutletTypeLabelNEMAL1550R      PowerOutletTypeLabel = "NEMA L15-50R"
	PowerOutletTypeLabelNEMAL1560R      PowerOutletTypeLabel = "NEMA L15-60R"
	PowerOutletTypeLabelNEMAL2120R      PowerOutletTypeLabel = "NEMA L21-20R"
	PowerOutletTypeLabelNEMAL2130R      PowerOutletTypeLabel = "NEMA L21-30R"
	PowerOutletTypeLabelNEMAL515R       PowerOutletTypeLabel = "NEMA L5-15R"
	PowerOutletTypeLabelNEMAL520R       PowerOutletTypeLabel = "NEMA L5-20R"
	PowerOutletTypeLabelNEMAL530R       PowerOutletTypeLabel = "NEMA L5-30R"
	PowerOutletTypeLabelNEMAL550R       PowerOutletTypeLabel = "NEMA L5-50R"
	PowerOutletTypeLabelNEMAL615R       PowerOutletTypeLabel = "NEMA L6-15R"
	PowerOutletTypeLabelNEMAL620R       PowerOutletTypeLabel = "NEMA L6-20R"
	PowerOutletTypeLabelNEMAL630R       PowerOutletTypeLabel = "NEMA L6-30R"
	PowerOutletTypeLabelNEMAL650R       PowerOutletTypeLabel = "NEMA L6-50R"
	PowerOutletTypeLabelPNE4H           PowerOutletTypeLabel = "P+N+E 4H"
	PowerOutletTypeLabelPNE6H           PowerOutletTypeLabel = "P+N+E 6H"
	PowerOutletTypeLabelPNE9H           PowerOutletTypeLabel = "P+N+E 9H"
	PowerOutletTypeLabelUSBMicroB       PowerOutletTypeLabel = "USB Micro B"
	PowerOutletTypeLabelUSBTypeA        PowerOutletTypeLabel = "USB Type A"
	PowerOutletTypeLabelUSBTypeC        PowerOutletTypeLabel = "USB Type C"
)

// Defines values for PowerOutletTypeValue.
const (
	PowerOutletTypeValueCS6360C        PowerOutletTypeValue = "CS6360C"
	PowerOutletTypeValueCS6364C        PowerOutletTypeValue = "CS6364C"
	PowerOutletTypeValueCS8164C        PowerOutletTypeValue = "CS8164C"
	PowerOutletTypeValueCS8264C        PowerOutletTypeValue = "CS8264C"
	PowerOutletTypeValueCS8364C        PowerOutletTypeValue = "CS8364C"
	PowerOutletTypeValueCS8464C        PowerOutletTypeValue = "CS8464C"
	PowerOutletTypeValueHdotCx         PowerOutletTypeValue = "hdot-cx"
	PowerOutletTypeValueIec603092pE4h  PowerOutletTypeValue = "iec-60309-2p-e-4h"
	PowerOutletTypeValueIec603092pE6h  PowerOutletTypeValue = "iec-60309-2p-e-6h"
	PowerOutletTypeValueIec603092pE9h  PowerOutletTypeValue = "iec-60309-2p-e-9h"
	PowerOutletTypeValueIec603093pE4h  PowerOutletTypeValue = "iec-60309-3p-e-4h"
	PowerOutletTypeValueIec603093pE6h  PowerOutletTypeValue = "iec-60309-3p-e-6h"
	PowerOutletTypeValueIec603093pE9h  PowerOutletTypeValue = "iec-60309-3p-e-9h"
	PowerOutletTypeValueIec603093pNE4h PowerOutletTypeValue = "iec-60309-3p-n-e-4h"
	PowerOutletTypeValueIec603093pNE6h PowerOutletTypeValue = "iec-60309-3p-n-e-6h"
	PowerOutletTypeValueIec603093pNE9h PowerOutletTypeValue = "iec-60309-3p-n-e-9h"
	PowerOutletTypeValueIec60309PNE4h  PowerOutletTypeValue = "iec-60309-p-n-e-4h"
	PowerOutletTypeValueIec60309PNE6h  PowerOutletTypeValue = "iec-60309-p-n-e-6h"
	PowerOutletTypeValueIec60309PNE9h  PowerOutletTypeValue = "iec-60309-p-n-e-9h"
	PowerOutletTypeValueIec60320C13    PowerOutletTypeValue = "iec-60320-c13"
	PowerOutletTypeValueIec60320C15    PowerOutletTypeValue = "iec-60320-c15"
	PowerOutletTypeValueIec60320C19    PowerOutletTypeValue = "iec-60320-c19"
	PowerOutletTypeValueIec60320C5     PowerOutletTypeValue = "iec-60320-c5"
	PowerOutletTypeValueIec60320C7     PowerOutletTypeValue = "iec-60320-c7"
	PowerOutletTypeValueItaE           PowerOutletTypeValue = "ita-e"
	PowerOutletTypeValueItaF           PowerOutletTypeValue = "ita-f"
	PowerOutletTypeValueItaG           PowerOutletTypeValue = "ita-g"
	PowerOutletTypeValueItaH           PowerOutletTypeValue = "ita-h"
	PowerOutletTypeValueItaI           PowerOutletTypeValue = "ita-i"
	PowerOutletTypeValueItaJ           PowerOutletTypeValue = "ita-j"
	PowerOutletTypeValueItaK           PowerOutletTypeValue = "ita-k"
	PowerOutletTypeValueItaL           PowerOutletTypeValue = "ita-l"
	PowerOutletTypeValueItaM           PowerOutletTypeValue = "ita-m"
	PowerOutletTypeValueItaN           PowerOutletTypeValue = "ita-n"
	PowerOutletTypeValueItaO           PowerOutletTypeValue = "ita-o"
	PowerOutletTypeValueNema1030r      PowerOutletTypeValue = "nema-10-30r"
	PowerOutletTypeValueNema1050r      PowerOutletTypeValue = "nema-10-50r"
	PowerOutletTypeValueNema115r       PowerOutletTypeValue = "nema-1-15r"
	PowerOutletTypeValueNema1420r      PowerOutletTypeValue = "nema-14-20r"
	PowerOutletTypeValueNema1430r      PowerOutletTypeValue = "nema-14-30r"
	PowerOutletTypeValueNema1450r      PowerOutletTypeValue = "nema-14-50r"
	PowerOutletTypeValueNema1460r      PowerOutletTypeValue = "nema-14-60r"
	PowerOutletTypeValueNema1515r      PowerOutletTypeValue = "nema-15-15r"
	PowerOutletTypeValueNema1520r      PowerOutletTypeValue = "nema-15-20r"
	PowerOutletTypeValueNema1530r      PowerOutletTypeValue = "nema-15-30r"
	PowerOutletTypeValueNema1550r      PowerOutletTypeValue = "nema-15-50r"
	PowerOutletTypeValueNema1560r      PowerOutletTypeValue = "nema-15-60r"
	PowerOutletTypeValueNema515r       PowerOutletTypeValue = "nema-5-15r"
	PowerOutletTypeValueNema520r       PowerOutletTypeValue = "nema-5-20r"
	PowerOutletTypeValueNema530r       PowerOutletTypeValue = "nema-5-30r"
	PowerOutletTypeValueNema550r       PowerOutletTypeValue = "nema-5-50r"
	PowerOutletTypeValueNema615r       PowerOutletTypeValue = "nema-6-15r"
	PowerOutletTypeValueNema620r       PowerOutletTypeValue = "nema-6-20r"
	PowerOutletTypeValueNema630r       PowerOutletTypeValue = "nema-6-30r"
	PowerOutletTypeValueNema650r       PowerOutletTypeValue = "nema-6-50r"
	PowerOutletTypeValueNemaL1030r     PowerOutletTypeValue = "nema-l10-30r"
	PowerOutletTypeValueNemaL115r      PowerOutletTypeValue = "nema-l1-15r"
	PowerOutletTypeValueNemaL1420r     PowerOutletTypeValue = "nema-l14-20r"
	PowerOutletTypeValueNemaL1430r     PowerOutletTypeValue = "nema-l14-30r"
	PowerOutletTypeValueNemaL1450r     PowerOutletTypeValue = "nema-l14-50r"
	PowerOutletTypeValueNemaL1460r     PowerOutletTypeValue = "nema-l14-60r"
	PowerOutletTypeValueNemaL1520r     PowerOutletTypeValue = "nema-l15-20r"
	PowerOutletTypeValueNemaL1530r     PowerOutletTypeValue = "nema-l15-30r"
	PowerOutletTypeValueNemaL1550r     PowerOutletTypeValue = "nema-l15-50r"
	PowerOutletTypeValueNemaL1560r     PowerOutletTypeValue = "nema-l15-60r"
	PowerOutletTypeValueNemaL2120r     PowerOutletTypeValue = "nema-l21-20r"
	PowerOutletTypeValueNemaL2130r     PowerOutletTypeValue = "nema-l21-30r"
	PowerOutletTypeValueNemaL515r      PowerOutletTypeValue = "nema-l5-15r"
	PowerOutletTypeValueNemaL520r      PowerOutletTypeValue = "nema-l5-20r"
	PowerOutletTypeValueNemaL530r      PowerOutletTypeValue = "nema-l5-30r"
	PowerOutletTypeValueNemaL550r      PowerOutletTypeValue = "nema-l5-50r"
	PowerOutletTypeValueNemaL615r      PowerOutletTypeValue = "nema-l6-15r"
	PowerOutletTypeValueNemaL620r      PowerOutletTypeValue = "nema-l6-20r"
	PowerOutletTypeValueNemaL630r      PowerOutletTypeValue = "nema-l6-30r"
	PowerOutletTypeValueNemaL650r      PowerOutletTypeValue = "nema-l6-50r"
	PowerOutletTypeValueUsbA           PowerOutletTypeValue = "usb-a"
	PowerOutletTypeValueUsbC           PowerOutletTypeValue = "usb-c"
	PowerOutletTypeValueUsbMicroB      PowerOutletTypeValue = "usb-micro-b"
)

// Defines values for PowerOutletTemplateFeedLegLabel.
const (
	PowerOutletTemplateFeedLegLabelA PowerOutletTemplateFeedLegLabel = "A"
	PowerOutletTemplateFeedLegLabelB PowerOutletTemplateFeedLegLabel = "B"
	PowerOutletTemplateFeedLegLabelC PowerOutletTemplateFeedLegLabel = "C"
)

// Defines values for PowerOutletTemplateFeedLegValue.
const (
	PowerOutletTemplateFeedLegValueA PowerOutletTemplateFeedLegValue = "A"
	PowerOutletTemplateFeedLegValueB PowerOutletTemplateFeedLegValue = "B"
	PowerOutletTemplateFeedLegValueC PowerOutletTemplateFeedLegValue = "C"
)

// Defines values for PowerOutletTemplateTypeLabel.
const (
	PowerOutletTemplateTypeLabelC13             PowerOutletTemplateTypeLabel = "C13"
	PowerOutletTemplateTypeLabelC15             PowerOutletTemplateTypeLabel = "C15"
	PowerOutletTemplateTypeLabelC19             PowerOutletTemplateTypeLabel = "C19"
	PowerOutletTemplateTypeLabelC5              PowerOutletTemplateTypeLabel = "C5"
	PowerOutletTemplateTypeLabelC7              PowerOutletTemplateTypeLabel = "C7"
	PowerOutletTemplateTypeLabelCS6360C         PowerOutletTemplateTypeLabel = "CS6360C"
	PowerOutletTemplateTypeLabelCS6364C         PowerOutletTemplateTypeLabel = "CS6364C"
	PowerOutletTemplateTypeLabelCS8164C         PowerOutletTemplateTypeLabel = "CS8164C"
	PowerOutletTemplateTypeLabelCS8264C         PowerOutletTemplateTypeLabel = "CS8264C"
	PowerOutletTemplateTypeLabelCS8364C         PowerOutletTemplateTypeLabel = "CS8364C"
	PowerOutletTemplateTypeLabelCS8464C         PowerOutletTemplateTypeLabel = "CS8464C"
	PowerOutletTemplateTypeLabelHDOTCx          PowerOutletTemplateTypeLabel = "HDOT Cx"
	PowerOutletTemplateTypeLabelITATypeECEE75   PowerOutletTemplateTypeLabel = "ITA Type E (CEE7/5)"
	PowerOutletTemplateTypeLabelITATypeFCEE73   PowerOutletTemplateTypeLabel = "ITA Type F (CEE7/3)"
	PowerOutletTemplateTypeLabelITATypeGBS1363  PowerOutletTemplateTypeLabel = "ITA Type G (BS 1363)"
	PowerOutletTemplateTypeLabelITATypeH        PowerOutletTemplateTypeLabel = "ITA Type H"
	PowerOutletTemplateTypeLabelITATypeI        PowerOutletTemplateTypeLabel = "ITA Type I"
	PowerOutletTemplateTypeLabelITATypeJ        PowerOutletTemplateTypeLabel = "ITA Type J"
	PowerOutletTemplateTypeLabelITATypeK        PowerOutletTemplateTypeLabel = "ITA Type K"
	PowerOutletTemplateTypeLabelITATypeLCEI2350 PowerOutletTemplateTypeLabel = "ITA Type L (CEI 23-50)"
	PowerOutletTemplateTypeLabelITATypeMBS546   PowerOutletTemplateTypeLabel = "ITA Type M (BS 546)"
	PowerOutletTemplateTypeLabelITATypeN        PowerOutletTemplateTypeLabel = "ITA Type N"
	PowerOutletTemplateTypeLabelITATypeO        PowerOutletTemplateTypeLabel = "ITA Type O"
	PowerOutletTemplateTypeLabelN2PE4H          PowerOutletTemplateTypeLabel = "2P+E 4H"
	PowerOutletTemplateTypeLabelN2PE6H          PowerOutletTemplateTypeLabel = "2P+E 6H"
	PowerOutletTemplateTypeLabelN2PE9H          PowerOutletTemplateTypeLabel = "2P+E 9H"
	PowerOutletTemplateTypeLabelN3PE4H          PowerOutletTemplateTypeLabel = "3P+E 4H"
	PowerOutletTemplateTypeLabelN3PE6H          PowerOutletTemplateTypeLabel = "3P+E 6H"
	PowerOutletTemplateTypeLabelN3PE9H          PowerOutletTemplateTypeLabel = "3P+E 9H"
	PowerOutletTemplateTypeLabelN3PNE4H         PowerOutletTemplateTypeLabel = "3P+N+E 4H"
	PowerOutletTemplateTypeLabelN3PNE6H         PowerOutletTemplateTypeLabel = "3P+N+E 6H"
	PowerOutletTemplateTypeLabelN3PNE9H         PowerOutletTemplateTypeLabel = "3P+N+E 9H"
	PowerOutletTemplateTypeLabelNEMA1030R       PowerOutletTemplateTypeLabel = "NEMA 10-30R"
	PowerOutletTemplateTypeLabelNEMA1050R       PowerOutletTemplateTypeLabel = "NEMA 10-50R"
	PowerOutletTemplateTypeLabelNEMA115R        PowerOutletTemplateTypeLabel = "NEMA 1-15R"
	PowerOutletTemplateTypeLabelNEMA1420R       PowerOutletTemplateTypeLabel = "NEMA 14-20R"
	PowerOutletTemplateTypeLabelNEMA1430R       PowerOutletTemplateTypeLabel = "NEMA 14-30R"
	PowerOutletTemplateTypeLabelNEMA1450R       PowerOutletTemplateTypeLabel = "NEMA 14-50R"
	PowerOutletTemplateTypeLabelNEMA1460R       PowerOutletTemplateTypeLabel = "NEMA 14-60R"
	PowerOutletTemplateTypeLabelNEMA1515R       PowerOutletTemplateTypeLabel = "NEMA 15-15R"
	PowerOutletTemplateTypeLabelNEMA1520R       PowerOutletTemplateTypeLabel = "NEMA 15-20R"
	PowerOutletTemplateTypeLabelNEMA1530R       PowerOutletTemplateTypeLabel = "NEMA 15-30R"
	PowerOutletTemplateTypeLabelNEMA1550R       PowerOutletTemplateTypeLabel = "NEMA 15-50R"
	PowerOutletTemplateTypeLabelNEMA1560R       PowerOutletTemplateTypeLabel = "NEMA 15-60R"
	PowerOutletTemplateTypeLabelNEMA515R        PowerOutletTemplateTypeLabel = "NEMA 5-15R"
	PowerOutletTemplateTypeLabelNEMA520R        PowerOutletTemplateTypeLabel = "NEMA 5-20R"
	PowerOutletTemplateTypeLabelNEMA530R        PowerOutletTemplateTypeLabel = "NEMA 5-30R"
	PowerOutletTemplateTypeLabelNEMA550R        PowerOutletTemplateTypeLabel = "NEMA 5-50R"
	PowerOutletTemplateTypeLabelNEMA615R        PowerOutletTemplateTypeLabel = "NEMA 6-15R"
	PowerOutletTemplateTypeLabelNEMA620R        PowerOutletTemplateTypeLabel = "NEMA 6-20R"
	PowerOutletTemplateTypeLabelNEMA630R        PowerOutletTemplateTypeLabel = "NEMA 6-30R"
	PowerOutletTemplateTypeLabelNEMA650R        PowerOutletTemplateTypeLabel = "NEMA 6-50R"
	PowerOutletTemplateTypeLabelNEMAL1030R      PowerOutletTemplateTypeLabel = "NEMA L10-30R"
	PowerOutletTemplateTypeLabelNEMAL115R       PowerOutletTemplateTypeLabel = "NEMA L1-15R"
	PowerOutletTemplateTypeLabelNEMAL1420R      PowerOutletTemplateTypeLabel = "NEMA L14-20R"
	PowerOutletTemplateTypeLabelNEMAL1430R      PowerOutletTemplateTypeLabel = "NEMA L14-30R"
	PowerOutletTemplateTypeLabelNEMAL1450R      PowerOutletTemplateTypeLabel = "NEMA L14-50R"
	PowerOutletTemplateTypeLabelNEMAL1460R      PowerOutletTemplateTypeLabel = "NEMA L14-60R"
	PowerOutletTemplateTypeLabelNEMAL1520R      PowerOutletTemplateTypeLabel = "NEMA L15-20R"
	PowerOutletTemplateTypeLabelNEMAL1530R      PowerOutletTemplateTypeLabel = "NEMA L15-30R"
	PowerOutletTemplateTypeLabelNEMAL1550R      PowerOutletTemplateTypeLabel = "NEMA L15-50R"
	PowerOutletTemplateTypeLabelNEMAL1560R      PowerOutletTemplateTypeLabel = "NEMA L15-60R"
	PowerOutletTemplateTypeLabelNEMAL2120R      PowerOutletTemplateTypeLabel = "NEMA L21-20R"
	PowerOutletTemplateTypeLabelNEMAL2130R      PowerOutletTemplateTypeLabel = "NEMA L21-30R"
	PowerOutletTemplateTypeLabelNEMAL515R       PowerOutletTemplateTypeLabel = "NEMA L5-15R"
	PowerOutletTemplateTypeLabelNEMAL520R       PowerOutletTemplateTypeLabel = "NEMA L5-20R"
	PowerOutletTemplateTypeLabelNEMAL530R       PowerOutletTemplateTypeLabel = "NEMA L5-30R"
	PowerOutletTemplateTypeLabelNEMAL550R       PowerOutletTemplateTypeLabel = "NEMA L5-50R"
	PowerOutletTemplateTypeLabelNEMAL615R       PowerOutletTemplateTypeLabel = "NEMA L6-15R"
	PowerOutletTemplateTypeLabelNEMAL620R       PowerOutletTemplateTypeLabel = "NEMA L6-20R"
	PowerOutletTemplateTypeLabelNEMAL630R       PowerOutletTemplateTypeLabel = "NEMA L6-30R"
	PowerOutletTemplateTypeLabelNEMAL650R       PowerOutletTemplateTypeLabel = "NEMA L6-50R"
	PowerOutletTemplateTypeLabelPNE4H           PowerOutletTemplateTypeLabel = "P+N+E 4H"
	PowerOutletTemplateTypeLabelPNE6H           PowerOutletTemplateTypeLabel = "P+N+E 6H"
	PowerOutletTemplateTypeLabelPNE9H           PowerOutletTemplateTypeLabel = "P+N+E 9H"
	PowerOutletTemplateTypeLabelUSBMicroB       PowerOutletTemplateTypeLabel = "USB Micro B"
	PowerOutletTemplateTypeLabelUSBTypeA        PowerOutletTemplateTypeLabel = "USB Type A"
	PowerOutletTemplateTypeLabelUSBTypeC        PowerOutletTemplateTypeLabel = "USB Type C"
)

// Defines values for PowerOutletTemplateTypeValue.
const (
	PowerOutletTemplateTypeValueCS6360C        PowerOutletTemplateTypeValue = "CS6360C"
	PowerOutletTemplateTypeValueCS6364C        PowerOutletTemplateTypeValue = "CS6364C"
	PowerOutletTemplateTypeValueCS8164C        PowerOutletTemplateTypeValue = "CS8164C"
	PowerOutletTemplateTypeValueCS8264C        PowerOutletTemplateTypeValue = "CS8264C"
	PowerOutletTemplateTypeValueCS8364C        PowerOutletTemplateTypeValue = "CS8364C"
	PowerOutletTemplateTypeValueCS8464C        PowerOutletTemplateTypeValue = "CS8464C"
	PowerOutletTemplateTypeValueHdotCx         PowerOutletTemplateTypeValue = "hdot-cx"
	PowerOutletTemplateTypeValueIec603092pE4h  PowerOutletTemplateTypeValue = "iec-60309-2p-e-4h"
	PowerOutletTemplateTypeValueIec603092pE6h  PowerOutletTemplateTypeValue = "iec-60309-2p-e-6h"
	PowerOutletTemplateTypeValueIec603092pE9h  PowerOutletTemplateTypeValue = "iec-60309-2p-e-9h"
	PowerOutletTemplateTypeValueIec603093pE4h  PowerOutletTemplateTypeValue = "iec-60309-3p-e-4h"
	PowerOutletTemplateTypeValueIec603093pE6h  PowerOutletTemplateTypeValue = "iec-60309-3p-e-6h"
	PowerOutletTemplateTypeValueIec603093pE9h  PowerOutletTemplateTypeValue = "iec-60309-3p-e-9h"
	PowerOutletTemplateTypeValueIec603093pNE4h PowerOutletTemplateTypeValue = "iec-60309-3p-n-e-4h"
	PowerOutletTemplateTypeValueIec603093pNE6h PowerOutletTemplateTypeValue = "iec-60309-3p-n-e-6h"
	PowerOutletTemplateTypeValueIec603093pNE9h PowerOutletTemplateTypeValue = "iec-60309-3p-n-e-9h"
	PowerOutletTemplateTypeValueIec60309PNE4h  PowerOutletTemplateTypeValue = "iec-60309-p-n-e-4h"
	PowerOutletTemplateTypeValueIec60309PNE6h  PowerOutletTemplateTypeValue = "iec-60309-p-n-e-6h"
	PowerOutletTemplateTypeValueIec60309PNE9h  PowerOutletTemplateTypeValue = "iec-60309-p-n-e-9h"
	PowerOutletTemplateTypeValueIec60320C13    PowerOutletTemplateTypeValue = "iec-60320-c13"
	PowerOutletTemplateTypeValueIec60320C15    PowerOutletTemplateTypeValue = "iec-60320-c15"
	PowerOutletTemplateTypeValueIec60320C19    PowerOutletTemplateTypeValue = "iec-60320-c19"
	PowerOutletTemplateTypeValueIec60320C5     PowerOutletTemplateTypeValue = "iec-60320-c5"
	PowerOutletTemplateTypeValueIec60320C7     PowerOutletTemplateTypeValue = "iec-60320-c7"
	PowerOutletTemplateTypeValueItaE           PowerOutletTemplateTypeValue = "ita-e"
	PowerOutletTemplateTypeValueItaF           PowerOutletTemplateTypeValue = "ita-f"
	PowerOutletTemplateTypeValueItaG           PowerOutletTemplateTypeValue = "ita-g"
	PowerOutletTemplateTypeValueItaH           PowerOutletTemplateTypeValue = "ita-h"
	PowerOutletTemplateTypeValueItaI           PowerOutletTemplateTypeValue = "ita-i"
	PowerOutletTemplateTypeValueItaJ           PowerOutletTemplateTypeValue = "ita-j"
	PowerOutletTemplateTypeValueItaK           PowerOutletTemplateTypeValue = "ita-k"
	PowerOutletTemplateTypeValueItaL           PowerOutletTemplateTypeValue = "ita-l"
	PowerOutletTemplateTypeValueItaM           PowerOutletTemplateTypeValue = "ita-m"
	PowerOutletTemplateTypeValueItaN           PowerOutletTemplateTypeValue = "ita-n"
	PowerOutletTemplateTypeValueItaO           PowerOutletTemplateTypeValue = "ita-o"
	PowerOutletTemplateTypeValueNema1030r      PowerOutletTemplateTypeValue = "nema-10-30r"
	PowerOutletTemplateTypeValueNema1050r      PowerOutletTemplateTypeValue = "nema-10-50r"
	PowerOutletTemplateTypeValueNema115r       PowerOutletTemplateTypeValue = "nema-1-15r"
	PowerOutletTemplateTypeValueNema1420r      PowerOutletTemplateTypeValue = "nema-14-20r"
	PowerOutletTemplateTypeValueNema1430r      PowerOutletTemplateTypeValue = "nema-14-30r"
	PowerOutletTemplateTypeValueNema1450r      PowerOutletTemplateTypeValue = "nema-14-50r"
	PowerOutletTemplateTypeValueNema1460r      PowerOutletTemplateTypeValue = "nema-14-60r"
	PowerOutletTemplateTypeValueNema1515r      PowerOutletTemplateTypeValue = "nema-15-15r"
	PowerOutletTemplateTypeValueNema1520r      PowerOutletTemplateTypeValue = "nema-15-20r"
	PowerOutletTemplateTypeValueNema1530r      PowerOutletTemplateTypeValue = "nema-15-30r"
	PowerOutletTemplateTypeValueNema1550r      PowerOutletTemplateTypeValue = "nema-15-50r"
	PowerOutletTemplateTypeValueNema1560r      PowerOutletTemplateTypeValue = "nema-15-60r"
	PowerOutletTemplateTypeValueNema515r       PowerOutletTemplateTypeValue = "nema-5-15r"
	PowerOutletTemplateTypeValueNema520r       PowerOutletTemplateTypeValue = "nema-5-20r"
	PowerOutletTemplateTypeValueNema530r       PowerOutletTemplateTypeValue = "nema-5-30r"
	PowerOutletTemplateTypeValueNema550r       PowerOutletTemplateTypeValue = "nema-5-50r"
	PowerOutletTemplateTypeValueNema615r       PowerOutletTemplateTypeValue = "nema-6-15r"
	PowerOutletTemplateTypeValueNema620r       PowerOutletTemplateTypeValue = "nema-6-20r"
	PowerOutletTemplateTypeValueNema630r       PowerOutletTemplateTypeValue = "nema-6-30r"
	PowerOutletTemplateTypeValueNema650r       PowerOutletTemplateTypeValue = "nema-6-50r"
	PowerOutletTemplateTypeValueNemaL1030r     PowerOutletTemplateTypeValue = "nema-l10-30r"
	PowerOutletTemplateTypeValueNemaL115r      PowerOutletTemplateTypeValue = "nema-l1-15r"
	PowerOutletTemplateTypeValueNemaL1420r     PowerOutletTemplateTypeValue = "nema-l14-20r"
	PowerOutletTemplateTypeValueNemaL1430r     PowerOutletTemplateTypeValue = "nema-l14-30r"
	PowerOutletTemplateTypeValueNemaL1450r     PowerOutletTemplateTypeValue = "nema-l14-50r"
	PowerOutletTemplateTypeValueNemaL1460r     PowerOutletTemplateTypeValue = "nema-l14-60r"
	PowerOutletTemplateTypeValueNemaL1520r     PowerOutletTemplateTypeValue = "nema-l15-20r"
	PowerOutletTemplateTypeValueNemaL1530r     PowerOutletTemplateTypeValue = "nema-l15-30r"
	PowerOutletTemplateTypeValueNemaL1550r     PowerOutletTemplateTypeValue = "nema-l15-50r"
	PowerOutletTemplateTypeValueNemaL1560r     PowerOutletTemplateTypeValue = "nema-l15-60r"
	PowerOutletTemplateTypeValueNemaL2120r     PowerOutletTemplateTypeValue = "nema-l21-20r"
	PowerOutletTemplateTypeValueNemaL2130r     PowerOutletTemplateTypeValue = "nema-l21-30r"
	PowerOutletTemplateTypeValueNemaL515r      PowerOutletTemplateTypeValue = "nema-l5-15r"
	PowerOutletTemplateTypeValueNemaL520r      PowerOutletTemplateTypeValue = "nema-l5-20r"
	PowerOutletTemplateTypeValueNemaL530r      PowerOutletTemplateTypeValue = "nema-l5-30r"
	PowerOutletTemplateTypeValueNemaL550r      PowerOutletTemplateTypeValue = "nema-l5-50r"
	PowerOutletTemplateTypeValueNemaL615r      PowerOutletTemplateTypeValue = "nema-l6-15r"
	PowerOutletTemplateTypeValueNemaL620r      PowerOutletTemplateTypeValue = "nema-l6-20r"
	PowerOutletTemplateTypeValueNemaL630r      PowerOutletTemplateTypeValue = "nema-l6-30r"
	PowerOutletTemplateTypeValueNemaL650r      PowerOutletTemplateTypeValue = "nema-l6-50r"
	PowerOutletTemplateTypeValueUsbA           PowerOutletTemplateTypeValue = "usb-a"
	PowerOutletTemplateTypeValueUsbC           PowerOutletTemplateTypeValue = "usb-c"
	PowerOutletTemplateTypeValueUsbMicroB      PowerOutletTemplateTypeValue = "usb-micro-b"
)

// Defines values for PowerOutletTypeChoices.
const (
	PowerOutletTypeChoicesCS6360C        PowerOutletTypeChoices = "CS6360C"
	PowerOutletTypeChoicesCS6364C        PowerOutletTypeChoices = "CS6364C"
	PowerOutletTypeChoicesCS8164C        PowerOutletTypeChoices = "CS8164C"
	PowerOutletTypeChoicesCS8264C        PowerOutletTypeChoices = "CS8264C"
	PowerOutletTypeChoicesCS8364C        PowerOutletTypeChoices = "CS8364C"
	PowerOutletTypeChoicesCS8464C        PowerOutletTypeChoices = "CS8464C"
	PowerOutletTypeChoicesHdotCx         PowerOutletTypeChoices = "hdot-cx"
	PowerOutletTypeChoicesIec603092pE4h  PowerOutletTypeChoices = "iec-60309-2p-e-4h"
	PowerOutletTypeChoicesIec603092pE6h  PowerOutletTypeChoices = "iec-60309-2p-e-6h"
	PowerOutletTypeChoicesIec603092pE9h  PowerOutletTypeChoices = "iec-60309-2p-e-9h"
	PowerOutletTypeChoicesIec603093pE4h  PowerOutletTypeChoices = "iec-60309-3p-e-4h"
	PowerOutletTypeChoicesIec603093pE6h  PowerOutletTypeChoices = "iec-60309-3p-e-6h"
	PowerOutletTypeChoicesIec603093pE9h  PowerOutletTypeChoices = "iec-60309-3p-e-9h"
	PowerOutletTypeChoicesIec603093pNE4h PowerOutletTypeChoices = "iec-60309-3p-n-e-4h"
	PowerOutletTypeChoicesIec603093pNE6h PowerOutletTypeChoices = "iec-60309-3p-n-e-6h"
	PowerOutletTypeChoicesIec603093pNE9h PowerOutletTypeChoices = "iec-60309-3p-n-e-9h"
	PowerOutletTypeChoicesIec60309PNE4h  PowerOutletTypeChoices = "iec-60309-p-n-e-4h"
	PowerOutletTypeChoicesIec60309PNE6h  PowerOutletTypeChoices = "iec-60309-p-n-e-6h"
	PowerOutletTypeChoicesIec60309PNE9h  PowerOutletTypeChoices = "iec-60309-p-n-e-9h"
	PowerOutletTypeChoicesIec60320C13    PowerOutletTypeChoices = "iec-60320-c13"
	PowerOutletTypeChoicesIec60320C15    PowerOutletTypeChoices = "iec-60320-c15"
	PowerOutletTypeChoicesIec60320C19    PowerOutletTypeChoices = "iec-60320-c19"
	PowerOutletTypeChoicesIec60320C5     PowerOutletTypeChoices = "iec-60320-c5"
	PowerOutletTypeChoicesIec60320C7     PowerOutletTypeChoices = "iec-60320-c7"
	PowerOutletTypeChoicesItaE           PowerOutletTypeChoices = "ita-e"
	PowerOutletTypeChoicesItaF           PowerOutletTypeChoices = "ita-f"
	PowerOutletTypeChoicesItaG           PowerOutletTypeChoices = "ita-g"
	PowerOutletTypeChoicesItaH           PowerOutletTypeChoices = "ita-h"
	PowerOutletTypeChoicesItaI           PowerOutletTypeChoices = "ita-i"
	PowerOutletTypeChoicesItaJ           PowerOutletTypeChoices = "ita-j"
	PowerOutletTypeChoicesItaK           PowerOutletTypeChoices = "ita-k"
	PowerOutletTypeChoicesItaL           PowerOutletTypeChoices = "ita-l"
	PowerOutletTypeChoicesItaM           PowerOutletTypeChoices = "ita-m"
	PowerOutletTypeChoicesItaN           PowerOutletTypeChoices = "ita-n"
	PowerOutletTypeChoicesItaO           PowerOutletTypeChoices = "ita-o"
	PowerOutletTypeChoicesNema1030r      PowerOutletTypeChoices = "nema-10-30r"
	PowerOutletTypeChoicesNema1050r      PowerOutletTypeChoices = "nema-10-50r"
	PowerOutletTypeChoicesNema115r       PowerOutletTypeChoices = "nema-1-15r"
	PowerOutletTypeChoicesNema1420r      PowerOutletTypeChoices = "nema-14-20r"
	PowerOutletTypeChoicesNema1430r      PowerOutletTypeChoices = "nema-14-30r"
	PowerOutletTypeChoicesNema1450r      PowerOutletTypeChoices = "nema-14-50r"
	PowerOutletTypeChoicesNema1460r      PowerOutletTypeChoices = "nema-14-60r"
	PowerOutletTypeChoicesNema1515r      PowerOutletTypeChoices = "nema-15-15r"
	PowerOutletTypeChoicesNema1520r      PowerOutletTypeChoices = "nema-15-20r"
	PowerOutletTypeChoicesNema1530r      PowerOutletTypeChoices = "nema-15-30r"
	PowerOutletTypeChoicesNema1550r      PowerOutletTypeChoices = "nema-15-50r"
	PowerOutletTypeChoicesNema1560r      PowerOutletTypeChoices = "nema-15-60r"
	PowerOutletTypeChoicesNema515r       PowerOutletTypeChoices = "nema-5-15r"
	PowerOutletTypeChoicesNema520r       PowerOutletTypeChoices = "nema-5-20r"
	PowerOutletTypeChoicesNema530r       PowerOutletTypeChoices = "nema-5-30r"
	PowerOutletTypeChoicesNema550r       PowerOutletTypeChoices = "nema-5-50r"
	PowerOutletTypeChoicesNema615r       PowerOutletTypeChoices = "nema-6-15r"
	PowerOutletTypeChoicesNema620r       PowerOutletTypeChoices = "nema-6-20r"
	PowerOutletTypeChoicesNema630r       PowerOutletTypeChoices = "nema-6-30r"
	PowerOutletTypeChoicesNema650r       PowerOutletTypeChoices = "nema-6-50r"
	PowerOutletTypeChoicesNemaL1030r     PowerOutletTypeChoices = "nema-l10-30r"
	PowerOutletTypeChoicesNemaL115r      PowerOutletTypeChoices = "nema-l1-15r"
	PowerOutletTypeChoicesNemaL1420r     PowerOutletTypeChoices = "nema-l14-20r"
	PowerOutletTypeChoicesNemaL1430r     PowerOutletTypeChoices = "nema-l14-30r"
	PowerOutletTypeChoicesNemaL1450r     PowerOutletTypeChoices = "nema-l14-50r"
	PowerOutletTypeChoicesNemaL1460r     PowerOutletTypeChoices = "nema-l14-60r"
	PowerOutletTypeChoicesNemaL1520r     PowerOutletTypeChoices = "nema-l15-20r"
	PowerOutletTypeChoicesNemaL1530r     PowerOutletTypeChoices = "nema-l15-30r"
	PowerOutletTypeChoicesNemaL1550r     PowerOutletTypeChoices = "nema-l15-50r"
	PowerOutletTypeChoicesNemaL1560r     PowerOutletTypeChoices = "nema-l15-60r"
	PowerOutletTypeChoicesNemaL2120r     PowerOutletTypeChoices = "nema-l21-20r"
	PowerOutletTypeChoicesNemaL2130r     PowerOutletTypeChoices = "nema-l21-30r"
	PowerOutletTypeChoicesNemaL515r      PowerOutletTypeChoices = "nema-l5-15r"
	PowerOutletTypeChoicesNemaL520r      PowerOutletTypeChoices = "nema-l5-20r"
	PowerOutletTypeChoicesNemaL530r      PowerOutletTypeChoices = "nema-l5-30r"
	PowerOutletTypeChoicesNemaL550r      PowerOutletTypeChoices = "nema-l5-50r"
	PowerOutletTypeChoicesNemaL615r      PowerOutletTypeChoices = "nema-l6-15r"
	PowerOutletTypeChoicesNemaL620r      PowerOutletTypeChoices = "nema-l6-20r"
	PowerOutletTypeChoicesNemaL630r      PowerOutletTypeChoices = "nema-l6-30r"
	PowerOutletTypeChoicesNemaL650r      PowerOutletTypeChoices = "nema-l6-50r"
	PowerOutletTypeChoicesUsbA           PowerOutletTypeChoices = "usb-a"
	PowerOutletTypeChoicesUsbC           PowerOutletTypeChoices = "usb-c"
	PowerOutletTypeChoicesUsbMicroB      PowerOutletTypeChoices = "usb-micro-b"
)

// Defines values for PowerPortTypeLabel.
const (
	PowerPortTypeLabelC14             PowerPortTypeLabel = "C14"
	PowerPortTypeLabelC16             PowerPortTypeLabel = "C16"
	PowerPortTypeLabelC20             PowerPortTypeLabel = "C20"
	PowerPortTypeLabelC6              PowerPortTypeLabel = "C6"
	PowerPortTypeLabelC8              PowerPortTypeLabel = "C8"
	PowerPortTypeLabelCS6361C         PowerPortTypeLabel = "CS6361C"
	PowerPortTypeLabelCS6365C         PowerPortTypeLabel = "CS6365C"
	PowerPortTypeLabelCS8165C         PowerPortTypeLabel = "CS8165C"
	PowerPortTypeLabelCS8265C         PowerPortTypeLabel = "CS8265C"
	PowerPortTypeLabelCS8365C         PowerPortTypeLabel = "CS8365C"
	PowerPortTypeLabelCS8465C         PowerPortTypeLabel = "CS8465C"
	PowerPortTypeLabelITATypeECEE75   PowerPortTypeLabel = "ITA Type E (CEE 7/5)"
	PowerPortTypeLabelITATypeEFCEE77  PowerPortTypeLabel = "ITA Type E/F (CEE 7/7)"
	PowerPortTypeLabelITATypeFCEE74   PowerPortTypeLabel = "ITA Type F (CEE 7/4)"
	PowerPortTypeLabelITATypeGBS1363  PowerPortTypeLabel = "ITA Type G (BS 1363)"
	PowerPortTypeLabelITATypeH        PowerPortTypeLabel = "ITA Type H"
	PowerPortTypeLabelITATypeI        PowerPortTypeLabel = "ITA Type I"
	PowerPortTypeLabelITATypeJ        PowerPortTypeLabel = "ITA Type J"
	PowerPortTypeLabelITATypeK        PowerPortTypeLabel = "ITA Type K"
	PowerPortTypeLabelITATypeLCEI2350 PowerPortTypeLabel = "ITA Type L (CEI 23-50)"
	PowerPortTypeLabelITATypeMBS546   PowerPortTypeLabel = "ITA Type M (BS 546)"
	PowerPortTypeLabelITATypeN        PowerPortTypeLabel = "ITA Type N"
	PowerPortTypeLabelITATypeO        PowerPortTypeLabel = "ITA Type O"
	PowerPortTypeLabelN2PE4H          PowerPortTypeLabel = "2P+E 4H"
	PowerPortTypeLabelN2PE6H          PowerPortTypeLabel = "2P+E 6H"
	PowerPortTypeLabelN2PE9H          PowerPortTypeLabel = "2P+E 9H"
	PowerPortTypeLabelN3PE4H          PowerPortTypeLabel = "3P+E 4H"
	PowerPortTypeLabelN3PE6H          PowerPortTypeLabel = "3P+E 6H"
	PowerPortTypeLabelN3PE9H          PowerPortTypeLabel = "3P+E 9H"
	PowerPortTypeLabelN3PNE4H         PowerPortTypeLabel = "3P+N+E 4H"
	PowerPortTypeLabelN3PNE6H         PowerPortTypeLabel = "3P+N+E 6H"
	PowerPortTypeLabelN3PNE9H         PowerPortTypeLabel = "3P+N+E 9H"
	PowerPortTypeLabelNEMA1030P       PowerPortTypeLabel = "NEMA 10-30P"
	PowerPortTypeLabelNEMA1050P       PowerPortTypeLabel = "NEMA 10-50P"
	PowerPortTypeLabelNEMA115P        PowerPortTypeLabel = "NEMA 1-15P"
	PowerPortTypeLabelNEMA1420P       PowerPortTypeLabel = "NEMA 14-20P"
	PowerPortTypeLabelNEMA1430P       PowerPortTypeLabel = "NEMA 14-30P"
	PowerPortTypeLabelNEMA1450P       PowerPortTypeLabel = "NEMA 14-50P"
	PowerPortTypeLabelNEMA1460P       PowerPortTypeLabel = "NEMA 14-60P"
	PowerPortTypeLabelNEMA1515P       PowerPortTypeLabel = "NEMA 15-15P"
	PowerPortTypeLabelNEMA1520P       PowerPortTypeLabel = "NEMA 15-20P"
	PowerPortTypeLabelNEMA1530P       PowerPortTypeLabel = "NEMA 15-30P"
	PowerPortTypeLabelNEMA1550P       PowerPortTypeLabel = "NEMA 15-50P"
	PowerPortTypeLabelNEMA1560P       PowerPortTypeLabel = "NEMA 15-60P"
	PowerPortTypeLabelNEMA515P        PowerPortTypeLabel = "NEMA 5-15P"
	PowerPortTypeLabelNEMA520P        PowerPortTypeLabel = "NEMA 5-20P"
	PowerPortTypeLabelNEMA530P        PowerPortTypeLabel = "NEMA 5-30P"
	PowerPortTypeLabelNEMA550P        PowerPortTypeLabel = "NEMA 5-50P"
	PowerPortTypeLabelNEMA615P        PowerPortTypeLabel = "NEMA 6-15P"
	PowerPortTypeLabelNEMA620P        PowerPortTypeLabel = "NEMA 6-20P"
	PowerPortTypeLabelNEMA630P        PowerPortTypeLabel = "NEMA 6-30P"
	PowerPortTypeLabelNEMA650P        PowerPortTypeLabel = "NEMA 6-50P"
	PowerPortTypeLabelNEMAL1030P      PowerPortTypeLabel = "NEMA L10-30P"
	PowerPortTypeLabelNEMAL115P       PowerPortTypeLabel = "NEMA L1-15P"
	PowerPortTypeLabelNEMAL1420P      PowerPortTypeLabel = "NEMA L14-20P"
	PowerPortTypeLabelNEMAL1430P      PowerPortTypeLabel = "NEMA L14-30P"
	PowerPortTypeLabelNEMAL1450P      PowerPortTypeLabel = "NEMA L14-50P"
	PowerPortTypeLabelNEMAL1460P      PowerPortTypeLabel = "NEMA L14-60P"
	PowerPortTypeLabelNEMAL1520P      PowerPortTypeLabel = "NEMA L15-20P"
	PowerPortTypeLabelNEMAL1530P      PowerPortTypeLabel = "NEMA L15-30P"
	PowerPortTypeLabelNEMAL1550P      PowerPortTypeLabel = "NEMA L15-50P"
	PowerPortTypeLabelNEMAL1560P      PowerPortTypeLabel = "NEMA L15-60P"
	PowerPortTypeLabelNEMAL2120P      PowerPortTypeLabel = "NEMA L21-20P"
	PowerPortTypeLabelNEMAL2130P      PowerPortTypeLabel = "NEMA L21-30P"
	PowerPortTypeLabelNEMAL515P       PowerPortTypeLabel = "NEMA L5-15P"
	PowerPortTypeLabelNEMAL520P       PowerPortTypeLabel = "NEMA L5-20P"
	PowerPortTypeLabelNEMAL530P       PowerPortTypeLabel = "NEMA L5-30P"
	PowerPortTypeLabelNEMAL550P       PowerPortTypeLabel = "NEMA L5-50P"
	PowerPortTypeLabelNEMAL615P       PowerPortTypeLabel = "NEMA L6-15P"
	PowerPortTypeLabelNEMAL620P       PowerPortTypeLabel = "NEMA L6-20P"
	PowerPortTypeLabelNEMAL630P       PowerPortTypeLabel = "NEMA L6-30P"
	PowerPortTypeLabelNEMAL650P       PowerPortTypeLabel = "NEMA L6-50P"
	PowerPortTypeLabelPNE4H           PowerPortTypeLabel = "P+N+E 4H"
	PowerPortTypeLabelPNE6H           PowerPortTypeLabel = "P+N+E 6H"
	PowerPortTypeLabelPNE9H           PowerPortTypeLabel = "P+N+E 9H"
	PowerPortTypeLabelUSB30MicroB     PowerPortTypeLabel = "USB 3.0 Micro B"
	PowerPortTypeLabelUSB30TypeB      PowerPortTypeLabel = "USB 3.0 Type B"
	PowerPortTypeLabelUSBMicroA       PowerPortTypeLabel = "USB Micro A"
	PowerPortTypeLabelUSBMicroB       PowerPortTypeLabel = "USB Micro B"
	PowerPortTypeLabelUSBMiniA        PowerPortTypeLabel = "USB Mini A"
	PowerPortTypeLabelUSBMiniB        PowerPortTypeLabel = "USB Mini B"
	PowerPortTypeLabelUSBTypeA        PowerPortTypeLabel = "USB Type A"
	PowerPortTypeLabelUSBTypeB        PowerPortTypeLabel = "USB Type B"
	PowerPortTypeLabelUSBTypeC        PowerPortTypeLabel = "USB Type C"
)

// Defines values for PowerPortTypeValue.
const (
	PowerPortTypeValueCs6361c        PowerPortTypeValue = "cs6361c"
	PowerPortTypeValueCs6365c        PowerPortTypeValue = "cs6365c"
	PowerPortTypeValueCs8165c        PowerPortTypeValue = "cs8165c"
	PowerPortTypeValueCs8265c        PowerPortTypeValue = "cs8265c"
	PowerPortTypeValueCs8365c        PowerPortTypeValue = "cs8365c"
	PowerPortTypeValueCs8465c        PowerPortTypeValue = "cs8465c"
	PowerPortTypeValueIec603092pE4h  PowerPortTypeValue = "iec-60309-2p-e-4h"
	PowerPortTypeValueIec603092pE6h  PowerPortTypeValue = "iec-60309-2p-e-6h"
	PowerPortTypeValueIec603092pE9h  PowerPortTypeValue = "iec-60309-2p-e-9h"
	PowerPortTypeValueIec603093pE4h  PowerPortTypeValue = "iec-60309-3p-e-4h"
	PowerPortTypeValueIec603093pE6h  PowerPortTypeValue = "iec-60309-3p-e-6h"
	PowerPortTypeValueIec603093pE9h  PowerPortTypeValue = "iec-60309-3p-e-9h"
	PowerPortTypeValueIec603093pNE4h PowerPortTypeValue = "iec-60309-3p-n-e-4h"
	PowerPortTypeValueIec603093pNE6h PowerPortTypeValue = "iec-60309-3p-n-e-6h"
	PowerPortTypeValueIec603093pNE9h PowerPortTypeValue = "iec-60309-3p-n-e-9h"
	PowerPortTypeValueIec60309PNE4h  PowerPortTypeValue = "iec-60309-p-n-e-4h"
	PowerPortTypeValueIec60309PNE6h  PowerPortTypeValue = "iec-60309-p-n-e-6h"
	PowerPortTypeValueIec60309PNE9h  PowerPortTypeValue = "iec-60309-p-n-e-9h"
	PowerPortTypeValueIec60320C14    PowerPortTypeValue = "iec-60320-c14"
	PowerPortTypeValueIec60320C16    PowerPortTypeValue = "iec-60320-c16"
	PowerPortTypeValueIec60320C20    PowerPortTypeValue = "iec-60320-c20"
	PowerPortTypeValueIec60320C6     PowerPortTypeValue = "iec-60320-c6"
	PowerPortTypeValueIec60320C8     PowerPortTypeValue = "iec-60320-c8"
	PowerPortTypeValueItaE           PowerPortTypeValue = "ita-e"
	PowerPortTypeValueItaEf          PowerPortTypeValue = "ita-ef"
	PowerPortTypeValueItaF           PowerPortTypeValue = "ita-f"
	PowerPortTypeValueItaG           PowerPortTypeValue = "ita-g"
	PowerPortTypeValueItaH           PowerPortTypeValue = "ita-h"
	PowerPortTypeValueItaI           PowerPortTypeValue = "ita-i"
	PowerPortTypeValueItaJ           PowerPortTypeValue = "ita-j"
	PowerPortTypeValueItaK           PowerPortTypeValue = "ita-k"
	PowerPortTypeValueItaL           PowerPortTypeValue = "ita-l"
	PowerPortTypeValueItaM           PowerPortTypeValue = "ita-m"
	PowerPortTypeValueItaN           PowerPortTypeValue = "ita-n"
	PowerPortTypeValueItaO           PowerPortTypeValue = "ita-o"
	PowerPortTypeValueNema1030p      PowerPortTypeValue = "nema-10-30p"
	PowerPortTypeValueNema1050p      PowerPortTypeValue = "nema-10-50p"
	PowerPortTypeValueNema115p       PowerPortTypeValue = "nema-1-15p"
	PowerPortTypeValueNema1420p      PowerPortTypeValue = "nema-14-20p"
	PowerPortTypeValueNema1430p      PowerPortTypeValue = "nema-14-30p"
	PowerPortTypeValueNema1450p      PowerPortTypeValue = "nema-14-50p"
	PowerPortTypeValueNema1460p      PowerPortTypeValue = "nema-14-60p"
	PowerPortTypeValueNema1515p      PowerPortTypeValue = "nema-15-15p"
	PowerPortTypeValueNema1520p      PowerPortTypeValue = "nema-15-20p"
	PowerPortTypeValueNema1530p      PowerPortTypeValue = "nema-15-30p"
	PowerPortTypeValueNema1550p      PowerPortTypeValue = "nema-15-50p"
	PowerPortTypeValueNema1560p      PowerPortTypeValue = "nema-15-60p"
	PowerPortTypeValueNema515p       PowerPortTypeValue = "nema-5-15p"
	PowerPortTypeValueNema520p       PowerPortTypeValue = "nema-5-20p"
	PowerPortTypeValueNema530p       PowerPortTypeValue = "nema-5-30p"
	PowerPortTypeValueNema550p       PowerPortTypeValue = "nema-5-50p"
	PowerPortTypeValueNema615p       PowerPortTypeValue = "nema-6-15p"
	PowerPortTypeValueNema620p       PowerPortTypeValue = "nema-6-20p"
	PowerPortTypeValueNema630p       PowerPortTypeValue = "nema-6-30p"
	PowerPortTypeValueNema650p       PowerPortTypeValue = "nema-6-50p"
	PowerPortTypeValueNemaL1030p     PowerPortTypeValue = "nema-l10-30p"
	PowerPortTypeValueNemaL115p      PowerPortTypeValue = "nema-l1-15p"
	PowerPortTypeValueNemaL1420p     PowerPortTypeValue = "nema-l14-20p"
	PowerPortTypeValueNemaL1430p     PowerPortTypeValue = "nema-l14-30p"
	PowerPortTypeValueNemaL1450p     PowerPortTypeValue = "nema-l14-50p"
	PowerPortTypeValueNemaL1460p     PowerPortTypeValue = "nema-l14-60p"
	PowerPortTypeValueNemaL1520p     PowerPortTypeValue = "nema-l15-20p"
	PowerPortTypeValueNemaL1530p     PowerPortTypeValue = "nema-l15-30p"
	PowerPortTypeValueNemaL1550p     PowerPortTypeValue = "nema-l15-50p"
	PowerPortTypeValueNemaL1560p     PowerPortTypeValue = "nema-l15-60p"
	PowerPortTypeValueNemaL2120p     PowerPortTypeValue = "nema-l21-20p"
	PowerPortTypeValueNemaL2130p     PowerPortTypeValue = "nema-l21-30p"
	PowerPortTypeValueNemaL515p      PowerPortTypeValue = "nema-l5-15p"
	PowerPortTypeValueNemaL520p      PowerPortTypeValue = "nema-l5-20p"
	PowerPortTypeValueNemaL530p      PowerPortTypeValue = "nema-l5-30p"
	PowerPortTypeValueNemaL550p      PowerPortTypeValue = "nema-l5-50p"
	PowerPortTypeValueNemaL615p      PowerPortTypeValue = "nema-l6-15p"
	PowerPortTypeValueNemaL620p      PowerPortTypeValue = "nema-l6-20p"
	PowerPortTypeValueNemaL630p      PowerPortTypeValue = "nema-l6-30p"
	PowerPortTypeValueNemaL650p      PowerPortTypeValue = "nema-l6-50p"
	PowerPortTypeValueUsb3B          PowerPortTypeValue = "usb-3-b"
	PowerPortTypeValueUsb3MicroB     PowerPortTypeValue = "usb-3-micro-b"
	PowerPortTypeValueUsbA           PowerPortTypeValue = "usb-a"
	PowerPortTypeValueUsbB           PowerPortTypeValue = "usb-b"
	PowerPortTypeValueUsbC           PowerPortTypeValue = "usb-c"
	PowerPortTypeValueUsbMicroA      PowerPortTypeValue = "usb-micro-a"
	PowerPortTypeValueUsbMicroB      PowerPortTypeValue = "usb-micro-b"
	PowerPortTypeValueUsbMiniA       PowerPortTypeValue = "usb-mini-a"
	PowerPortTypeValueUsbMiniB       PowerPortTypeValue = "usb-mini-b"
)

// Defines values for PowerPortTemplateTypeLabel.
const (
	PowerPortTemplateTypeLabelC14             PowerPortTemplateTypeLabel = "C14"
	PowerPortTemplateTypeLabelC16             PowerPortTemplateTypeLabel = "C16"
	PowerPortTemplateTypeLabelC20             PowerPortTemplateTypeLabel = "C20"
	PowerPortTemplateTypeLabelC6              PowerPortTemplateTypeLabel = "C6"
	PowerPortTemplateTypeLabelC8              PowerPortTemplateTypeLabel = "C8"
	PowerPortTemplateTypeLabelCS6361C         PowerPortTemplateTypeLabel = "CS6361C"
	PowerPortTemplateTypeLabelCS6365C         PowerPortTemplateTypeLabel = "CS6365C"
	PowerPortTemplateTypeLabelCS8165C         PowerPortTemplateTypeLabel = "CS8165C"
	PowerPortTemplateTypeLabelCS8265C         PowerPortTemplateTypeLabel = "CS8265C"
	PowerPortTemplateTypeLabelCS8365C         PowerPortTemplateTypeLabel = "CS8365C"
	PowerPortTemplateTypeLabelCS8465C         PowerPortTemplateTypeLabel = "CS8465C"
	PowerPortTemplateTypeLabelITATypeECEE75   PowerPortTemplateTypeLabel = "ITA Type E (CEE 7/5)"
	PowerPortTemplateTypeLabelITATypeEFCEE77  PowerPortTemplateTypeLabel = "ITA Type E/F (CEE 7/7)"
	PowerPortTemplateTypeLabelITATypeFCEE74   PowerPortTemplateTypeLabel = "ITA Type F (CEE 7/4)"
	PowerPortTemplateTypeLabelITATypeGBS1363  PowerPortTemplateTypeLabel = "ITA Type G (BS 1363)"
	PowerPortTemplateTypeLabelITATypeH        PowerPortTemplateTypeLabel = "ITA Type H"
	PowerPortTemplateTypeLabelITATypeI        PowerPortTemplateTypeLabel = "ITA Type I"
	PowerPortTemplateTypeLabelITATypeJ        PowerPortTemplateTypeLabel = "ITA Type J"
	PowerPortTemplateTypeLabelITATypeK        PowerPortTemplateTypeLabel = "ITA Type K"
	PowerPortTemplateTypeLabelITATypeLCEI2350 PowerPortTemplateTypeLabel = "ITA Type L (CEI 23-50)"
	PowerPortTemplateTypeLabelITATypeMBS546   PowerPortTemplateTypeLabel = "ITA Type M (BS 546)"
	PowerPortTemplateTypeLabelITATypeN        PowerPortTemplateTypeLabel = "ITA Type N"
	PowerPortTemplateTypeLabelITATypeO        PowerPortTemplateTypeLabel = "ITA Type O"
	PowerPortTemplateTypeLabelN2PE4H          PowerPortTemplateTypeLabel = "2P+E 4H"
	PowerPortTemplateTypeLabelN2PE6H          PowerPortTemplateTypeLabel = "2P+E 6H"
	PowerPortTemplateTypeLabelN2PE9H          PowerPortTemplateTypeLabel = "2P+E 9H"
	PowerPortTemplateTypeLabelN3PE4H          PowerPortTemplateTypeLabel = "3P+E 4H"
	PowerPortTemplateTypeLabelN3PE6H          PowerPortTemplateTypeLabel = "3P+E 6H"
	PowerPortTemplateTypeLabelN3PE9H          PowerPortTemplateTypeLabel = "3P+E 9H"
	PowerPortTemplateTypeLabelN3PNE4H         PowerPortTemplateTypeLabel = "3P+N+E 4H"
	PowerPortTemplateTypeLabelN3PNE6H         PowerPortTemplateTypeLabel = "3P+N+E 6H"
	PowerPortTemplateTypeLabelN3PNE9H         PowerPortTemplateTypeLabel = "3P+N+E 9H"
	PowerPortTemplateTypeLabelNEMA1030P       PowerPortTemplateTypeLabel = "NEMA 10-30P"
	PowerPortTemplateTypeLabelNEMA1050P       PowerPortTemplateTypeLabel = "NEMA 10-50P"
	PowerPortTemplateTypeLabelNEMA115P        PowerPortTemplateTypeLabel = "NEMA 1-15P"
	PowerPortTemplateTypeLabelNEMA1420P       PowerPortTemplateTypeLabel = "NEMA 14-20P"
	PowerPortTemplateTypeLabelNEMA1430P       PowerPortTemplateTypeLabel = "NEMA 14-30P"
	PowerPortTemplateTypeLabelNEMA1450P       PowerPortTemplateTypeLabel = "NEMA 14-50P"
	PowerPortTemplateTypeLabelNEMA1460P       PowerPortTemplateTypeLabel = "NEMA 14-60P"
	PowerPortTemplateTypeLabelNEMA1515P       PowerPortTemplateTypeLabel = "NEMA 15-15P"
	PowerPortTemplateTypeLabelNEMA1520P       PowerPortTemplateTypeLabel = "NEMA 15-20P"
	PowerPortTemplateTypeLabelNEMA1530P       PowerPortTemplateTypeLabel = "NEMA 15-30P"
	PowerPortTemplateTypeLabelNEMA1550P       PowerPortTemplateTypeLabel = "NEMA 15-50P"
	PowerPortTemplateTypeLabelNEMA1560P       PowerPortTemplateTypeLabel = "NEMA 15-60P"
	PowerPortTemplateTypeLabelNEMA515P        PowerPortTemplateTypeLabel = "NEMA 5-15P"
	PowerPortTemplateTypeLabelNEMA520P        PowerPortTemplateTypeLabel = "NEMA 5-20P"
	PowerPortTemplateTypeLabelNEMA530P        PowerPortTemplateTypeLabel = "NEMA 5-30P"
	PowerPortTemplateTypeLabelNEMA550P        PowerPortTemplateTypeLabel = "NEMA 5-50P"
	PowerPortTemplateTypeLabelNEMA615P        PowerPortTemplateTypeLabel = "NEMA 6-15P"
	PowerPortTemplateTypeLabelNEMA620P        PowerPortTemplateTypeLabel = "NEMA 6-20P"
	PowerPortTemplateTypeLabelNEMA630P        PowerPortTemplateTypeLabel = "NEMA 6-30P"
	PowerPortTemplateTypeLabelNEMA650P        PowerPortTemplateTypeLabel = "NEMA 6-50P"
	PowerPortTemplateTypeLabelNEMAL1030P      PowerPortTemplateTypeLabel = "NEMA L10-30P"
	PowerPortTemplateTypeLabelNEMAL115P       PowerPortTemplateTypeLabel = "NEMA L1-15P"
	PowerPortTemplateTypeLabelNEMAL1420P      PowerPortTemplateTypeLabel = "NEMA L14-20P"
	PowerPortTemplateTypeLabelNEMAL1430P      PowerPortTemplateTypeLabel = "NEMA L14-30P"
	PowerPortTemplateTypeLabelNEMAL1450P      PowerPortTemplateTypeLabel = "NEMA L14-50P"
	PowerPortTemplateTypeLabelNEMAL1460P      PowerPortTemplateTypeLabel = "NEMA L14-60P"
	PowerPortTemplateTypeLabelNEMAL1520P      PowerPortTemplateTypeLabel = "NEMA L15-20P"
	PowerPortTemplateTypeLabelNEMAL1530P      PowerPortTemplateTypeLabel = "NEMA L15-30P"
	PowerPortTemplateTypeLabelNEMAL1550P      PowerPortTemplateTypeLabel = "NEMA L15-50P"
	PowerPortTemplateTypeLabelNEMAL1560P      PowerPortTemplateTypeLabel = "NEMA L15-60P"
	PowerPortTemplateTypeLabelNEMAL2120P      PowerPortTemplateTypeLabel = "NEMA L21-20P"
	PowerPortTemplateTypeLabelNEMAL2130P      PowerPortTemplateTypeLabel = "NEMA L21-30P"
	PowerPortTemplateTypeLabelNEMAL515P       PowerPortTemplateTypeLabel = "NEMA L5-15P"
	PowerPortTemplateTypeLabelNEMAL520P       PowerPortTemplateTypeLabel = "NEMA L5-20P"
	PowerPortTemplateTypeLabelNEMAL530P       PowerPortTemplateTypeLabel = "NEMA L5-30P"
	PowerPortTemplateTypeLabelNEMAL550P       PowerPortTemplateTypeLabel = "NEMA L5-50P"
	PowerPortTemplateTypeLabelNEMAL615P       PowerPortTemplateTypeLabel = "NEMA L6-15P"
	PowerPortTemplateTypeLabelNEMAL620P       PowerPortTemplateTypeLabel = "NEMA L6-20P"
	PowerPortTemplateTypeLabelNEMAL630P       PowerPortTemplateTypeLabel = "NEMA L6-30P"
	PowerPortTemplateTypeLabelNEMAL650P       PowerPortTemplateTypeLabel = "NEMA L6-50P"
	PowerPortTemplateTypeLabelPNE4H           PowerPortTemplateTypeLabel = "P+N+E 4H"
	PowerPortTemplateTypeLabelPNE6H           PowerPortTemplateTypeLabel = "P+N+E 6H"
	PowerPortTemplateTypeLabelPNE9H           PowerPortTemplateTypeLabel = "P+N+E 9H"
	PowerPortTemplateTypeLabelUSB30MicroB     PowerPortTemplateTypeLabel = "USB 3.0 Micro B"
	PowerPortTemplateTypeLabelUSB30TypeB      PowerPortTemplateTypeLabel = "USB 3.0 Type B"
	PowerPortTemplateTypeLabelUSBMicroA       PowerPortTemplateTypeLabel = "USB Micro A"
	PowerPortTemplateTypeLabelUSBMicroB       PowerPortTemplateTypeLabel = "USB Micro B"
	PowerPortTemplateTypeLabelUSBMiniA        PowerPortTemplateTypeLabel = "USB Mini A"
	PowerPortTemplateTypeLabelUSBMiniB        PowerPortTemplateTypeLabel = "USB Mini B"
	PowerPortTemplateTypeLabelUSBTypeA        PowerPortTemplateTypeLabel = "USB Type A"
	PowerPortTemplateTypeLabelUSBTypeB        PowerPortTemplateTypeLabel = "USB Type B"
	PowerPortTemplateTypeLabelUSBTypeC        PowerPortTemplateTypeLabel = "USB Type C"
)

// Defines values for PowerPortTemplateTypeValue.
const (
	PowerPortTemplateTypeValueCs6361c        PowerPortTemplateTypeValue = "cs6361c"
	PowerPortTemplateTypeValueCs6365c        PowerPortTemplateTypeValue = "cs6365c"
	PowerPortTemplateTypeValueCs8165c        PowerPortTemplateTypeValue = "cs8165c"
	PowerPortTemplateTypeValueCs8265c        PowerPortTemplateTypeValue = "cs8265c"
	PowerPortTemplateTypeValueCs8365c        PowerPortTemplateTypeValue = "cs8365c"
	PowerPortTemplateTypeValueCs8465c        PowerPortTemplateTypeValue = "cs8465c"
	PowerPortTemplateTypeValueIec603092pE4h  PowerPortTemplateTypeValue = "iec-60309-2p-e-4h"
	PowerPortTemplateTypeValueIec603092pE6h  PowerPortTemplateTypeValue = "iec-60309-2p-e-6h"
	PowerPortTemplateTypeValueIec603092pE9h  PowerPortTemplateTypeValue = "iec-60309-2p-e-9h"
	PowerPortTemplateTypeValueIec603093pE4h  PowerPortTemplateTypeValue = "iec-60309-3p-e-4h"
	PowerPortTemplateTypeValueIec603093pE6h  PowerPortTemplateTypeValue = "iec-60309-3p-e-6h"
	PowerPortTemplateTypeValueIec603093pE9h  PowerPortTemplateTypeValue = "iec-60309-3p-e-9h"
	PowerPortTemplateTypeValueIec603093pNE4h PowerPortTemplateTypeValue = "iec-60309-3p-n-e-4h"
	PowerPortTemplateTypeValueIec603093pNE6h PowerPortTemplateTypeValue = "iec-60309-3p-n-e-6h"
	PowerPortTemplateTypeValueIec603093pNE9h PowerPortTemplateTypeValue = "iec-60309-3p-n-e-9h"
	PowerPortTemplateTypeValueIec60309PNE4h  PowerPortTemplateTypeValue = "iec-60309-p-n-e-4h"
	PowerPortTemplateTypeValueIec60309PNE6h  PowerPortTemplateTypeValue = "iec-60309-p-n-e-6h"
	PowerPortTemplateTypeValueIec60309PNE9h  PowerPortTemplateTypeValue = "iec-60309-p-n-e-9h"
	PowerPortTemplateTypeValueIec60320C14    PowerPortTemplateTypeValue = "iec-60320-c14"
	PowerPortTemplateTypeValueIec60320C16    PowerPortTemplateTypeValue = "iec-60320-c16"
	PowerPortTemplateTypeValueIec60320C20    PowerPortTemplateTypeValue = "iec-60320-c20"
	PowerPortTemplateTypeValueIec60320C6     PowerPortTemplateTypeValue = "iec-60320-c6"
	PowerPortTemplateTypeValueIec60320C8     PowerPortTemplateTypeValue = "iec-60320-c8"
	PowerPortTemplateTypeValueItaE           PowerPortTemplateTypeValue = "ita-e"
	PowerPortTemplateTypeValueItaEf          PowerPortTemplateTypeValue = "ita-ef"
	PowerPortTemplateTypeValueItaF           PowerPortTemplateTypeValue = "ita-f"
	PowerPortTemplateTypeValueItaG           PowerPortTemplateTypeValue = "ita-g"
	PowerPortTemplateTypeValueItaH           PowerPortTemplateTypeValue = "ita-h"
	PowerPortTemplateTypeValueItaI           PowerPortTemplateTypeValue = "ita-i"
	PowerPortTemplateTypeValueItaJ           PowerPortTemplateTypeValue = "ita-j"
	PowerPortTemplateTypeValueItaK           PowerPortTemplateTypeValue = "ita-k"
	PowerPortTemplateTypeValueItaL           PowerPortTemplateTypeValue = "ita-l"
	PowerPortTemplateTypeValueItaM           PowerPortTemplateTypeValue = "ita-m"
	PowerPortTemplateTypeValueItaN           PowerPortTemplateTypeValue = "ita-n"
	PowerPortTemplateTypeValueItaO           PowerPortTemplateTypeValue = "ita-o"
	PowerPortTemplateTypeValueNema1030p      PowerPortTemplateTypeValue = "nema-10-30p"
	PowerPortTemplateTypeValueNema1050p      PowerPortTemplateTypeValue = "nema-10-50p"
	PowerPortTemplateTypeValueNema115p       PowerPortTemplateTypeValue = "nema-1-15p"
	PowerPortTemplateTypeValueNema1420p      PowerPortTemplateTypeValue = "nema-14-20p"
	PowerPortTemplateTypeValueNema1430p      PowerPortTemplateTypeValue = "nema-14-30p"
	PowerPortTemplateTypeValueNema1450p      PowerPortTemplateTypeValue = "nema-14-50p"
	PowerPortTemplateTypeValueNema1460p      PowerPortTemplateTypeValue = "nema-14-60p"
	PowerPortTemplateTypeValueNema1515p      PowerPortTemplateTypeValue = "nema-15-15p"
	PowerPortTemplateTypeValueNema1520p      PowerPortTemplateTypeValue = "nema-15-20p"
	PowerPortTemplateTypeValueNema1530p      PowerPortTemplateTypeValue = "nema-15-30p"
	PowerPortTemplateTypeValueNema1550p      PowerPortTemplateTypeValue = "nema-15-50p"
	PowerPortTemplateTypeValueNema1560p      PowerPortTemplateTypeValue = "nema-15-60p"
	PowerPortTemplateTypeValueNema515p       PowerPortTemplateTypeValue = "nema-5-15p"
	PowerPortTemplateTypeValueNema520p       PowerPortTemplateTypeValue = "nema-5-20p"
	PowerPortTemplateTypeValueNema530p       PowerPortTemplateTypeValue = "nema-5-30p"
	PowerPortTemplateTypeValueNema550p       PowerPortTemplateTypeValue = "nema-5-50p"
	PowerPortTemplateTypeValueNema615p       PowerPortTemplateTypeValue = "nema-6-15p"
	PowerPortTemplateTypeValueNema620p       PowerPortTemplateTypeValue = "nema-6-20p"
	PowerPortTemplateTypeValueNema630p       PowerPortTemplateTypeValue = "nema-6-30p"
	PowerPortTemplateTypeValueNema650p       PowerPortTemplateTypeValue = "nema-6-50p"
	PowerPortTemplateTypeValueNemaL1030p     PowerPortTemplateTypeValue = "nema-l10-30p"
	PowerPortTemplateTypeValueNemaL115p      PowerPortTemplateTypeValue = "nema-l1-15p"
	PowerPortTemplateTypeValueNemaL1420p     PowerPortTemplateTypeValue = "nema-l14-20p"
	PowerPortTemplateTypeValueNemaL1430p     PowerPortTemplateTypeValue = "nema-l14-30p"
	PowerPortTemplateTypeValueNemaL1450p     PowerPortTemplateTypeValue = "nema-l14-50p"
	PowerPortTemplateTypeValueNemaL1460p     PowerPortTemplateTypeValue = "nema-l14-60p"
	PowerPortTemplateTypeValueNemaL1520p     PowerPortTemplateTypeValue = "nema-l15-20p"
	PowerPortTemplateTypeValueNemaL1530p     PowerPortTemplateTypeValue = "nema-l15-30p"
	PowerPortTemplateTypeValueNemaL1550p     PowerPortTemplateTypeValue = "nema-l15-50p"
	PowerPortTemplateTypeValueNemaL1560p     PowerPortTemplateTypeValue = "nema-l15-60p"
	PowerPortTemplateTypeValueNemaL2120p     PowerPortTemplateTypeValue = "nema-l21-20p"
	PowerPortTemplateTypeValueNemaL2130p     PowerPortTemplateTypeValue = "nema-l21-30p"
	PowerPortTemplateTypeValueNemaL515p      PowerPortTemplateTypeValue = "nema-l5-15p"
	PowerPortTemplateTypeValueNemaL520p      PowerPortTemplateTypeValue = "nema-l5-20p"
	PowerPortTemplateTypeValueNemaL530p      PowerPortTemplateTypeValue = "nema-l5-30p"
	PowerPortTemplateTypeValueNemaL550p      PowerPortTemplateTypeValue = "nema-l5-50p"
	PowerPortTemplateTypeValueNemaL615p      PowerPortTemplateTypeValue = "nema-l6-15p"
	PowerPortTemplateTypeValueNemaL620p      PowerPortTemplateTypeValue = "nema-l6-20p"
	PowerPortTemplateTypeValueNemaL630p      PowerPortTemplateTypeValue = "nema-l6-30p"
	PowerPortTemplateTypeValueNemaL650p      PowerPortTemplateTypeValue = "nema-l6-50p"
	PowerPortTemplateTypeValueUsb3B          PowerPortTemplateTypeValue = "usb-3-b"
	PowerPortTemplateTypeValueUsb3MicroB     PowerPortTemplateTypeValue = "usb-3-micro-b"
	PowerPortTemplateTypeValueUsbA           PowerPortTemplateTypeValue = "usb-a"
	PowerPortTemplateTypeValueUsbB           PowerPortTemplateTypeValue = "usb-b"
	PowerPortTemplateTypeValueUsbC           PowerPortTemplateTypeValue = "usb-c"
	PowerPortTemplateTypeValueUsbMicroA      PowerPortTemplateTypeValue = "usb-micro-a"
	PowerPortTemplateTypeValueUsbMicroB      PowerPortTemplateTypeValue = "usb-micro-b"
	PowerPortTemplateTypeValueUsbMiniA       PowerPortTemplateTypeValue = "usb-mini-a"
	PowerPortTemplateTypeValueUsbMiniB       PowerPortTemplateTypeValue = "usb-mini-b"
)

// Defines values for PowerPortTypeChoices.
const (
	PowerPortTypeChoicesCs6361c        PowerPortTypeChoices = "cs6361c"
	PowerPortTypeChoicesCs6365c        PowerPortTypeChoices = "cs6365c"
	PowerPortTypeChoicesCs8165c        PowerPortTypeChoices = "cs8165c"
	PowerPortTypeChoicesCs8265c        PowerPortTypeChoices = "cs8265c"
	PowerPortTypeChoicesCs8365c        PowerPortTypeChoices = "cs8365c"
	PowerPortTypeChoicesCs8465c        PowerPortTypeChoices = "cs8465c"
	PowerPortTypeChoicesIec603092pE4h  PowerPortTypeChoices = "iec-60309-2p-e-4h"
	PowerPortTypeChoicesIec603092pE6h  PowerPortTypeChoices = "iec-60309-2p-e-6h"
	PowerPortTypeChoicesIec603092pE9h  PowerPortTypeChoices = "iec-60309-2p-e-9h"
	PowerPortTypeChoicesIec603093pE4h  PowerPortTypeChoices = "iec-60309-3p-e-4h"
	PowerPortTypeChoicesIec603093pE6h  PowerPortTypeChoices = "iec-60309-3p-e-6h"
	PowerPortTypeChoicesIec603093pE9h  PowerPortTypeChoices = "iec-60309-3p-e-9h"
	PowerPortTypeChoicesIec603093pNE4h PowerPortTypeChoices = "iec-60309-3p-n-e-4h"
	PowerPortTypeChoicesIec603093pNE6h PowerPortTypeChoices = "iec-60309-3p-n-e-6h"
	PowerPortTypeChoicesIec603093pNE9h PowerPortTypeChoices = "iec-60309-3p-n-e-9h"
	PowerPortTypeChoicesIec60309PNE4h  PowerPortTypeChoices = "iec-60309-p-n-e-4h"
	PowerPortTypeChoicesIec60309PNE6h  PowerPortTypeChoices = "iec-60309-p-n-e-6h"
	PowerPortTypeChoicesIec60309PNE9h  PowerPortTypeChoices = "iec-60309-p-n-e-9h"
	PowerPortTypeChoicesIec60320C14    PowerPortTypeChoices = "iec-60320-c14"
	PowerPortTypeChoicesIec60320C16    PowerPortTypeChoices = "iec-60320-c16"
	PowerPortTypeChoicesIec60320C20    PowerPortTypeChoices = "iec-60320-c20"
	PowerPortTypeChoicesIec60320C6     PowerPortTypeChoices = "iec-60320-c6"
	PowerPortTypeChoicesIec60320C8     PowerPortTypeChoices = "iec-60320-c8"
	PowerPortTypeChoicesItaE           PowerPortTypeChoices = "ita-e"
	PowerPortTypeChoicesItaEf          PowerPortTypeChoices = "ita-ef"
	PowerPortTypeChoicesItaF           PowerPortTypeChoices = "ita-f"
	PowerPortTypeChoicesItaG           PowerPortTypeChoices = "ita-g"
	PowerPortTypeChoicesItaH           PowerPortTypeChoices = "ita-h"
	PowerPortTypeChoicesItaI           PowerPortTypeChoices = "ita-i"
	PowerPortTypeChoicesItaJ           PowerPortTypeChoices = "ita-j"
	PowerPortTypeChoicesItaK           PowerPortTypeChoices = "ita-k"
	PowerPortTypeChoicesItaL           PowerPortTypeChoices = "ita-l"
	PowerPortTypeChoicesItaM           PowerPortTypeChoices = "ita-m"
	PowerPortTypeChoicesItaN           PowerPortTypeChoices = "ita-n"
	PowerPortTypeChoicesItaO           PowerPortTypeChoices = "ita-o"
	PowerPortTypeChoicesNema1030p      PowerPortTypeChoices = "nema-10-30p"
	PowerPortTypeChoicesNema1050p      PowerPortTypeChoices = "nema-10-50p"
	PowerPortTypeChoicesNema115p       PowerPortTypeChoices = "nema-1-15p"
	PowerPortTypeChoicesNema1420p      PowerPortTypeChoices = "nema-14-20p"
	PowerPortTypeChoicesNema1430p      PowerPortTypeChoices = "nema-14-30p"
	PowerPortTypeChoicesNema1450p      PowerPortTypeChoices = "nema-14-50p"
	PowerPortTypeChoicesNema1460p      PowerPortTypeChoices = "nema-14-60p"
	PowerPortTypeChoicesNema1515p      PowerPortTypeChoices = "nema-15-15p"
	PowerPortTypeChoicesNema1520p      PowerPortTypeChoices = "nema-15-20p"
	PowerPortTypeChoicesNema1530p      PowerPortTypeChoices = "nema-15-30p"
	PowerPortTypeChoicesNema1550p      PowerPortTypeChoices = "nema-15-50p"
	PowerPortTypeChoicesNema1560p      PowerPortTypeChoices = "nema-15-60p"
	PowerPortTypeChoicesNema515p       PowerPortTypeChoices = "nema-5-15p"
	PowerPortTypeChoicesNema520p       PowerPortTypeChoices = "nema-5-20p"
	PowerPortTypeChoicesNema530p       PowerPortTypeChoices = "nema-5-30p"
	PowerPortTypeChoicesNema550p       PowerPortTypeChoices = "nema-5-50p"
	PowerPortTypeChoicesNema615p       PowerPortTypeChoices = "nema-6-15p"
	PowerPortTypeChoicesNema620p       PowerPortTypeChoices = "nema-6-20p"
	PowerPortTypeChoicesNema630p       PowerPortTypeChoices = "nema-6-30p"
	PowerPortTypeChoicesNema650p       PowerPortTypeChoices = "nema-6-50p"
	PowerPortTypeChoicesNemaL1030p     PowerPortTypeChoices = "nema-l10-30p"
	PowerPortTypeChoicesNemaL115p      PowerPortTypeChoices = "nema-l1-15p"
	PowerPortTypeChoicesNemaL1420p     PowerPortTypeChoices = "nema-l14-20p"
	PowerPortTypeChoicesNemaL1430p     PowerPortTypeChoices = "nema-l14-30p"
	PowerPortTypeChoicesNemaL1450p     PowerPortTypeChoices = "nema-l14-50p"
	PowerPortTypeChoicesNemaL1460p     PowerPortTypeChoices = "nema-l14-60p"
	PowerPortTypeChoicesNemaL1520p     PowerPortTypeChoices = "nema-l15-20p"
	PowerPortTypeChoicesNemaL1530p     PowerPortTypeChoices = "nema-l15-30p"
	PowerPortTypeChoicesNemaL1550p     PowerPortTypeChoices = "nema-l15-50p"
	PowerPortTypeChoicesNemaL1560p     PowerPortTypeChoices = "nema-l15-60p"
	PowerPortTypeChoicesNemaL2120p     PowerPortTypeChoices = "nema-l21-20p"
	PowerPortTypeChoicesNemaL2130p     PowerPortTypeChoices = "nema-l21-30p"
	PowerPortTypeChoicesNemaL515p      PowerPortTypeChoices = "nema-l5-15p"
	PowerPortTypeChoicesNemaL520p      PowerPortTypeChoices = "nema-l5-20p"
	PowerPortTypeChoicesNemaL530p      PowerPortTypeChoices = "nema-l5-30p"
	PowerPortTypeChoicesNemaL550p      PowerPortTypeChoices = "nema-l5-50p"
	PowerPortTypeChoicesNemaL615p      PowerPortTypeChoices = "nema-l6-15p"
	PowerPortTypeChoicesNemaL620p      PowerPortTypeChoices = "nema-l6-20p"
	PowerPortTypeChoicesNemaL630p      PowerPortTypeChoices = "nema-l6-30p"
	PowerPortTypeChoicesNemaL650p      PowerPortTypeChoices = "nema-l6-50p"
	PowerPortTypeChoicesUsb3B          PowerPortTypeChoices = "usb-3-b"
	PowerPortTypeChoicesUsb3MicroB     PowerPortTypeChoices = "usb-3-micro-b"
	PowerPortTypeChoicesUsbA           PowerPortTypeChoices = "usb-a"
	PowerPortTypeChoicesUsbB           PowerPortTypeChoices = "usb-b"
	PowerPortTypeChoicesUsbC           PowerPortTypeChoices = "usb-c"
	PowerPortTypeChoicesUsbMicroA      PowerPortTypeChoices = "usb-micro-a"
	PowerPortTypeChoicesUsbMicroB      PowerPortTypeChoices = "usb-micro-b"
	PowerPortTypeChoicesUsbMiniA       PowerPortTypeChoices = "usb-mini-a"
	PowerPortTypeChoicesUsbMiniB       PowerPortTypeChoices = "usb-mini-b"
)

// Defines values for PrefixFamilyLabel.
const (
	IPv4 PrefixFamilyLabel = "IPv4"
	IPv6 PrefixFamilyLabel = "IPv6"
)

// Defines values for PrefixFamilyValue.
const (
	N4 PrefixFamilyValue = 4
	N6 PrefixFamilyValue = 6
)

// Defines values for PrefixStatusLabel.
const (
	PrefixStatusLabelActive     PrefixStatusLabel = "Active"
	PrefixStatusLabelContainer  PrefixStatusLabel = "Container"
	PrefixStatusLabelDeprecated PrefixStatusLabel = "Deprecated"
	PrefixStatusLabelPeerToPeer PrefixStatusLabel = "Peer-to-Peer"
	PrefixStatusLabelReserved   PrefixStatusLabel = "Reserved"
)

// Defines values for PrefixStatusValue.
const (
	PrefixStatusValueActive     PrefixStatusValue = "active"
	PrefixStatusValueContainer  PrefixStatusValue = "container"
	PrefixStatusValueDeprecated PrefixStatusValue = "deprecated"
	PrefixStatusValueP2p        PrefixStatusValue = "p2p"
	PrefixStatusValueReserved   PrefixStatusValue = "reserved"
)

// Defines values for PrefixStatusChoices.
const (
	PrefixStatusChoicesActive     PrefixStatusChoices = "active"
	PrefixStatusChoicesContainer  PrefixStatusChoices = "container"
	PrefixStatusChoicesDeprecated PrefixStatusChoices = "deprecated"
	PrefixStatusChoicesP2p        PrefixStatusChoices = "p2p"
	PrefixStatusChoicesReserved   PrefixStatusChoices = "reserved"
)

// Defines values for ProtocolEnum.
const (
	ProtocolEnumTcp ProtocolEnum = "tcp"
	ProtocolEnumUdp ProtocolEnum = "udp"
)

// Defines values for ProvidedContentsEnum.
const (
	ExtrasConfigcontext                  ProvidedContentsEnum = "extras.configcontext"
	ExtrasConfigcontextschema            ProvidedContentsEnum = "extras.configcontextschema"
	ExtrasExporttemplate                 ProvidedContentsEnum = "extras.exporttemplate"
	ExtrasJob                            ProvidedContentsEnum = "extras.job"
	NautobotGoldenConfigBackupconfigs    ProvidedContentsEnum = "nautobot_golden_config.backupconfigs"
	NautobotGoldenConfigIntendedconfigs  ProvidedContentsEnum = "nautobot_golden_config.intendedconfigs"
	NautobotGoldenConfigJinjatemplate    ProvidedContentsEnum = "nautobot_golden_config.jinjatemplate"
	NautobotGoldenConfigPluginproperties ProvidedContentsEnum = "nautobot_golden_config.pluginproperties"
)

// Defines values for RackOuterUnitLabel.
const (
	RackOuterUnitLabelInches      RackOuterUnitLabel = "Inches"
	RackOuterUnitLabelMillimeters RackOuterUnitLabel = "Millimeters"
)

// Defines values for RackOuterUnitValue.
const (
	RackOuterUnitValueIn RackOuterUnitValue = "in"
	RackOuterUnitValueMm RackOuterUnitValue = "mm"
)

// Defines values for RackStatusLabel.
const (
	RackStatusLabelActive     RackStatusLabel = "Active"
	RackStatusLabelAvailable  RackStatusLabel = "Available"
	RackStatusLabelDeprecated RackStatusLabel = "Deprecated"
	RackStatusLabelPlanned    RackStatusLabel = "Planned"
	RackStatusLabelReserved   RackStatusLabel = "Reserved"
)

// Defines values for RackStatusValue.
const (
	RackStatusValueActive     RackStatusValue = "active"
	RackStatusValueAvailable  RackStatusValue = "available"
	RackStatusValueDeprecated RackStatusValue = "deprecated"
	RackStatusValuePlanned    RackStatusValue = "planned"
	RackStatusValueReserved   RackStatusValue = "reserved"
)

// Defines values for RackTypeLabel.
const (
	RackTypeLabelN2PostFrame        RackTypeLabel = "2-post frame"
	RackTypeLabelN4PostCabinet      RackTypeLabel = "4-post cabinet"
	RackTypeLabelN4PostFrame        RackTypeLabel = "4-post frame"
	RackTypeLabelWallMountedCabinet RackTypeLabel = "Wall-mounted cabinet"
	RackTypeLabelWallMountedFrame   RackTypeLabel = "Wall-mounted frame"
)

// Defines values for RackTypeValue.
const (
	RackTypeValueN2PostFrame   RackTypeValue = "2-post-frame"
	RackTypeValueN4PostCabinet RackTypeValue = "4-post-cabinet"
	RackTypeValueN4PostFrame   RackTypeValue = "4-post-frame"
	RackTypeValueWallCabinet   RackTypeValue = "wall-cabinet"
	RackTypeValueWallFrame     RackTypeValue = "wall-frame"
)

// Defines values for RackWidthLabel.
const (
	N10Inches RackWidthLabel = "10 inches"
	N19Inches RackWidthLabel = "19 inches"
	N21Inches RackWidthLabel = "21 inches"
	N23Inches RackWidthLabel = "23 inches"
)

// Defines values for RackWidthValue.
const (
	RackWidthValueN10 RackWidthValue = 10
	RackWidthValueN19 RackWidthValue = 19
	RackWidthValueN21 RackWidthValue = 21
	RackWidthValueN23 RackWidthValue = 23
)

// Defines values for RackStatusChoices.
const (
	RackStatusChoicesActive     RackStatusChoices = "active"
	RackStatusChoicesAvailable  RackStatusChoices = "available"
	RackStatusChoicesDeprecated RackStatusChoices = "deprecated"
	RackStatusChoicesPlanned    RackStatusChoices = "planned"
	RackStatusChoicesReserved   RackStatusChoices = "reserved"
)

// Defines values for RackTypeChoices.
const (
	N2PostFrame   RackTypeChoices = "2-post-frame"
	N4PostCabinet RackTypeChoices = "4-post-cabinet"
	N4PostFrame   RackTypeChoices = "4-post-frame"
	WallCabinet   RackTypeChoices = "wall-cabinet"
	WallFrame     RackTypeChoices = "wall-frame"
)

// Defines values for RackUnitFaceLabel.
const (
	RackUnitFaceLabelFront RackUnitFaceLabel = "Front"
	RackUnitFaceLabelRear  RackUnitFaceLabel = "Rear"
)

// Defines values for RackUnitFaceValue.
const (
	RackUnitFaceValueFront RackUnitFaceValue = "front"
	RackUnitFaceValueRear  RackUnitFaceValue = "rear"
)

// Defines values for RearPortTypeLabel.
const (
	RearPortTypeLabelBNC       RearPortTypeLabel = "BNC"
	RearPortTypeLabelCS        RearPortTypeLabel = "CS"
	RearPortTypeLabelFC        RearPortTypeLabel = "FC"
	RearPortTypeLabelGG45      RearPortTypeLabel = "GG45"
	RearPortTypeLabelLC        RearPortTypeLabel = "LC"
	RearPortTypeLabelLCAPC     RearPortTypeLabel = "LC/APC"
	RearPortTypeLabelLSH       RearPortTypeLabel = "LSH"
	RearPortTypeLabelLSHAPC    RearPortTypeLabel = "LSH/APC"
	RearPortTypeLabelMPO       RearPortTypeLabel = "MPO"
	RearPortTypeLabelMRJ21     RearPortTypeLabel = "MRJ21"
	RearPortTypeLabelMTRJ      RearPortTypeLabel = "MTRJ"
	RearPortTypeLabelN110Punch RearPortTypeLabel = "110 Punch"
	RearPortTypeLabelN8P2C     RearPortTypeLabel = "8P2C"
	RearPortTypeLabelN8P4C     RearPortTypeLabel = "8P4C"
	RearPortTypeLabelN8P6C     RearPortTypeLabel = "8P6C"
	RearPortTypeLabelN8P8C     RearPortTypeLabel = "8P8C"
	RearPortTypeLabelSC        RearPortTypeLabel = "SC"
	RearPortTypeLabelSCAPC     RearPortTypeLabel = "SC/APC"
	RearPortTypeLabelSN        RearPortTypeLabel = "SN"
	RearPortTypeLabelST        RearPortTypeLabel = "ST"
	RearPortTypeLabelSplice    RearPortTypeLabel = "Splice"
	RearPortTypeLabelTERA1P    RearPortTypeLabel = "TERA 1P"
	RearPortTypeLabelTERA2P    RearPortTypeLabel = "TERA 2P"
	RearPortTypeLabelTERA4P    RearPortTypeLabel = "TERA 4P"
	RearPortTypeLabelURMP2     RearPortTypeLabel = "URM-P2"
	RearPortTypeLabelURMP4     RearPortTypeLabel = "URM-P4"
	RearPortTypeLabelURMP8     RearPortTypeLabel = "URM-P8"
)

// Defines values for RearPortTypeValue.
const (
	RearPortTypeValueBnc       RearPortTypeValue = "bnc"
	RearPortTypeValueCs        RearPortTypeValue = "cs"
	RearPortTypeValueFc        RearPortTypeValue = "fc"
	RearPortTypeValueGg45      RearPortTypeValue = "gg45"
	RearPortTypeValueLc        RearPortTypeValue = "lc"
	RearPortTypeValueLcApc     RearPortTypeValue = "lc-apc"
	RearPortTypeValueLsh       RearPortTypeValue = "lsh"
	RearPortTypeValueLshApc    RearPortTypeValue = "lsh-apc"
	RearPortTypeValueMpo       RearPortTypeValue = "mpo"
	RearPortTypeValueMrj21     RearPortTypeValue = "mrj21"
	RearPortTypeValueMtrj      RearPortTypeValue = "mtrj"
	RearPortTypeValueN110Punch RearPortTypeValue = "110-punch"
	RearPortTypeValueN8p2c     RearPortTypeValue = "8p2c"
	RearPortTypeValueN8p4c     RearPortTypeValue = "8p4c"
	RearPortTypeValueN8p6c     RearPortTypeValue = "8p6c"
	RearPortTypeValueN8p8c     RearPortTypeValue = "8p8c"
	RearPortTypeValueSc        RearPortTypeValue = "sc"
	RearPortTypeValueScApc     RearPortTypeValue = "sc-apc"
	RearPortTypeValueSn        RearPortTypeValue = "sn"
	RearPortTypeValueSplice    RearPortTypeValue = "splice"
	RearPortTypeValueSt        RearPortTypeValue = "st"
	RearPortTypeValueTera1p    RearPortTypeValue = "tera-1p"
	RearPortTypeValueTera2p    RearPortTypeValue = "tera-2p"
	RearPortTypeValueTera4p    RearPortTypeValue = "tera-4p"
	RearPortTypeValueUrmP2     RearPortTypeValue = "urm-p2"
	RearPortTypeValueUrmP4     RearPortTypeValue = "urm-p4"
	RearPortTypeValueUrmP8     RearPortTypeValue = "urm-p8"
)

// Defines values for RearPortTemplateTypeLabel.
const (
	RearPortTemplateTypeLabelBNC       RearPortTemplateTypeLabel = "BNC"
	RearPortTemplateTypeLabelCS        RearPortTemplateTypeLabel = "CS"
	RearPortTemplateTypeLabelFC        RearPortTemplateTypeLabel = "FC"
	RearPortTemplateTypeLabelGG45      RearPortTemplateTypeLabel = "GG45"
	RearPortTemplateTypeLabelLC        RearPortTemplateTypeLabel = "LC"
	RearPortTemplateTypeLabelLCAPC     RearPortTemplateTypeLabel = "LC/APC"
	RearPortTemplateTypeLabelLSH       RearPortTemplateTypeLabel = "LSH"
	RearPortTemplateTypeLabelLSHAPC    RearPortTemplateTypeLabel = "LSH/APC"
	RearPortTemplateTypeLabelMPO       RearPortTemplateTypeLabel = "MPO"
	RearPortTemplateTypeLabelMRJ21     RearPortTemplateTypeLabel = "MRJ21"
	RearPortTemplateTypeLabelMTRJ      RearPortTemplateTypeLabel = "MTRJ"
	RearPortTemplateTypeLabelN110Punch RearPortTemplateTypeLabel = "110 Punch"
	RearPortTemplateTypeLabelN8P2C     RearPortTemplateTypeLabel = "8P2C"
	RearPortTemplateTypeLabelN8P4C     RearPortTemplateTypeLabel = "8P4C"
	RearPortTemplateTypeLabelN8P6C     RearPortTemplateTypeLabel = "8P6C"
	RearPortTemplateTypeLabelN8P8C     RearPortTemplateTypeLabel = "8P8C"
	RearPortTemplateTypeLabelSC        RearPortTemplateTypeLabel = "SC"
	RearPortTemplateTypeLabelSCAPC     RearPortTemplateTypeLabel = "SC/APC"
	RearPortTemplateTypeLabelSN        RearPortTemplateTypeLabel = "SN"
	RearPortTemplateTypeLabelST        RearPortTemplateTypeLabel = "ST"
	RearPortTemplateTypeLabelSplice    RearPortTemplateTypeLabel = "Splice"
	RearPortTemplateTypeLabelTERA1P    RearPortTemplateTypeLabel = "TERA 1P"
	RearPortTemplateTypeLabelTERA2P    RearPortTemplateTypeLabel = "TERA 2P"
	RearPortTemplateTypeLabelTERA4P    RearPortTemplateTypeLabel = "TERA 4P"
	RearPortTemplateTypeLabelURMP2     RearPortTemplateTypeLabel = "URM-P2"
	RearPortTemplateTypeLabelURMP4     RearPortTemplateTypeLabel = "URM-P4"
	RearPortTemplateTypeLabelURMP8     RearPortTemplateTypeLabel = "URM-P8"
)

// Defines values for RearPortTemplateTypeValue.
const (
	RearPortTemplateTypeValueBnc       RearPortTemplateTypeValue = "bnc"
	RearPortTemplateTypeValueCs        RearPortTemplateTypeValue = "cs"
	RearPortTemplateTypeValueFc        RearPortTemplateTypeValue = "fc"
	RearPortTemplateTypeValueGg45      RearPortTemplateTypeValue = "gg45"
	RearPortTemplateTypeValueLc        RearPortTemplateTypeValue = "lc"
	RearPortTemplateTypeValueLcApc     RearPortTemplateTypeValue = "lc-apc"
	RearPortTemplateTypeValueLsh       RearPortTemplateTypeValue = "lsh"
	RearPortTemplateTypeValueLshApc    RearPortTemplateTypeValue = "lsh-apc"
	RearPortTemplateTypeValueMpo       RearPortTemplateTypeValue = "mpo"
	RearPortTemplateTypeValueMrj21     RearPortTemplateTypeValue = "mrj21"
	RearPortTemplateTypeValueMtrj      RearPortTemplateTypeValue = "mtrj"
	RearPortTemplateTypeValueN110Punch RearPortTemplateTypeValue = "110-punch"
	RearPortTemplateTypeValueN8p2c     RearPortTemplateTypeValue = "8p2c"
	RearPortTemplateTypeValueN8p4c     RearPortTemplateTypeValue = "8p4c"
	RearPortTemplateTypeValueN8p6c     RearPortTemplateTypeValue = "8p6c"
	RearPortTemplateTypeValueN8p8c     RearPortTemplateTypeValue = "8p8c"
	RearPortTemplateTypeValueSc        RearPortTemplateTypeValue = "sc"
	RearPortTemplateTypeValueScApc     RearPortTemplateTypeValue = "sc-apc"
	RearPortTemplateTypeValueSn        RearPortTemplateTypeValue = "sn"
	RearPortTemplateTypeValueSplice    RearPortTemplateTypeValue = "splice"
	RearPortTemplateTypeValueSt        RearPortTemplateTypeValue = "st"
	RearPortTemplateTypeValueTera1p    RearPortTemplateTypeValue = "tera-1p"
	RearPortTemplateTypeValueTera2p    RearPortTemplateTypeValue = "tera-2p"
	RearPortTemplateTypeValueTera4p    RearPortTemplateTypeValue = "tera-4p"
	RearPortTemplateTypeValueUrmP2     RearPortTemplateTypeValue = "urm-p2"
	RearPortTemplateTypeValueUrmP4     RearPortTemplateTypeValue = "urm-p4"
	RearPortTemplateTypeValueUrmP8     RearPortTemplateTypeValue = "urm-p8"
)

// Defines values for RelationshipTypeChoices.
const (
	ManyToMany          RelationshipTypeChoices = "many-to-many"
	OneToMany           RelationshipTypeChoices = "one-to-many"
	OneToOne            RelationshipTypeChoices = "one-to-one"
	SymmetricManyToMany RelationshipTypeChoices = "symmetric-many-to-many"
	SymmetricOneToOne   RelationshipTypeChoices = "symmetric-one-to-one"
)

// Defines values for RequiredOnEnum.
const (
	Destination RequiredOnEnum = "destination"
	Source      RequiredOnEnum = "source"
)

// Defines values for RoleEnum.
const (
	Anycast   RoleEnum = "anycast"
	Carp      RoleEnum = "carp"
	Glbp      RoleEnum = "glbp"
	Hsrp      RoleEnum = "hsrp"
	Loopback  RoleEnum = "loopback"
	Secondary RoleEnum = "secondary"
	Vip       RoleEnum = "vip"
	Vrrp      RoleEnum = "vrrp"
)

// Defines values for SecretTypeEnum.
const (
	SecretTypeEnumKey      SecretTypeEnum = "key"
	SecretTypeEnumPassword SecretTypeEnum = "password"
	SecretTypeEnumSecret   SecretTypeEnum = "secret"
	SecretTypeEnumToken    SecretTypeEnum = "token"
	SecretTypeEnumUsername SecretTypeEnum = "username"
)

// Defines values for ServiceProtocolLabel.
const (
	ServiceProtocolLabelTCP ServiceProtocolLabel = "TCP"
	ServiceProtocolLabelUDP ServiceProtocolLabel = "UDP"
)

// Defines values for ServiceProtocolValue.
const (
	ServiceProtocolValueTcp ServiceProtocolValue = "tcp"
	ServiceProtocolValueUdp ServiceProtocolValue = "udp"
)

// Defines values for ServiceObjectStatusLabel.
const (
	ServiceObjectStatusLabelActive         ServiceObjectStatusLabel = "Active"
	ServiceObjectStatusLabelDecommissioned ServiceObjectStatusLabel = "Decommissioned"
	ServiceObjectStatusLabelStaged         ServiceObjectStatusLabel = "Staged"
)

// Defines values for ServiceObjectStatusValue.
const (
	ServiceObjectStatusValueActive         ServiceObjectStatusValue = "active"
	ServiceObjectStatusValueDecommissioned ServiceObjectStatusValue = "decommissioned"
	ServiceObjectStatusValueStaged         ServiceObjectStatusValue = "staged"
)

// Defines values for ServiceObjectGroupServiceObjectsIpProtocol.
const (
	ServiceObjectGroupServiceObjectsIpProtocolAH            ServiceObjectGroupServiceObjectsIpProtocol = "AH"
	ServiceObjectGroupServiceObjectsIpProtocolAN            ServiceObjectGroupServiceObjectsIpProtocol = "A/N"
	ServiceObjectGroupServiceObjectsIpProtocolARIS          ServiceObjectGroupServiceObjectsIpProtocol = "ARIS"
	ServiceObjectGroupServiceObjectsIpProtocolAX25          ServiceObjectGroupServiceObjectsIpProtocol = "AX.25"
	ServiceObjectGroupServiceObjectsIpProtocolBBNRCCMON     ServiceObjectGroupServiceObjectsIpProtocol = "BBN-RCC-MON"
	ServiceObjectGroupServiceObjectsIpProtocolBNA           ServiceObjectGroupServiceObjectsIpProtocol = "BNA"
	ServiceObjectGroupServiceObjectsIpProtocolBRSATMON      ServiceObjectGroupServiceObjectsIpProtocol = "BR-SAT-MON"
	ServiceObjectGroupServiceObjectsIpProtocolCBT           ServiceObjectGroupServiceObjectsIpProtocol = "CBT"
	ServiceObjectGroupServiceObjectsIpProtocolCFTP          ServiceObjectGroupServiceObjectsIpProtocol = "CFTP"
	ServiceObjectGroupServiceObjectsIpProtocolCHAOS         ServiceObjectGroupServiceObjectsIpProtocol = "CHAOS"
	ServiceObjectGroupServiceObjectsIpProtocolCPHB          ServiceObjectGroupServiceObjectsIpProtocol = "CPHB"
	ServiceObjectGroupServiceObjectsIpProtocolCPNX          ServiceObjectGroupServiceObjectsIpProtocol = "CPNX"
	ServiceObjectGroupServiceObjectsIpProtocolCRTP          ServiceObjectGroupServiceObjectsIpProtocol = "CRTP"
	ServiceObjectGroupServiceObjectsIpProtocolCRUDP         ServiceObjectGroupServiceObjectsIpProtocol = "CRUDP"
	ServiceObjectGroupServiceObjectsIpProtocolCompaqPeer    ServiceObjectGroupServiceObjectsIpProtocol = "Compaq-Peer"
	ServiceObjectGroupServiceObjectsIpProtocolDCCP          ServiceObjectGroupServiceObjectsIpProtocol = "DCCP"
	ServiceObjectGroupServiceObjectsIpProtocolDCNMEAS       ServiceObjectGroupServiceObjectsIpProtocol = "DCN-MEAS"
	ServiceObjectGroupServiceObjectsIpProtocolDDP           ServiceObjectGroupServiceObjectsIpProtocol = "DDP"
	ServiceObjectGroupServiceObjectsIpProtocolDDX           ServiceObjectGroupServiceObjectsIpProtocol = "DDX"
	ServiceObjectGroupServiceObjectsIpProtocolDGP           ServiceObjectGroupServiceObjectsIpProtocol = "DGP"
	ServiceObjectGroupServiceObjectsIpProtocolDSR           ServiceObjectGroupServiceObjectsIpProtocol = "DSR"
	ServiceObjectGroupServiceObjectsIpProtocolEGP           ServiceObjectGroupServiceObjectsIpProtocol = "EGP"
	ServiceObjectGroupServiceObjectsIpProtocolEIGRP         ServiceObjectGroupServiceObjectsIpProtocol = "EIGRP"
	ServiceObjectGroupServiceObjectsIpProtocolEMCON         ServiceObjectGroupServiceObjectsIpProtocol = "EMCON"
	ServiceObjectGroupServiceObjectsIpProtocolENCAP         ServiceObjectGroupServiceObjectsIpProtocol = "ENCAP"
	ServiceObjectGroupServiceObjectsIpProtocolESP           ServiceObjectGroupServiceObjectsIpProtocol = "ESP"
	ServiceObjectGroupServiceObjectsIpProtocolETHERIP       ServiceObjectGroupServiceObjectsIpProtocol = "ETHERIP"
	ServiceObjectGroupServiceObjectsIpProtocolEthernet      ServiceObjectGroupServiceObjectsIpProtocol = "Ethernet"
	ServiceObjectGroupServiceObjectsIpProtocolFC            ServiceObjectGroupServiceObjectsIpProtocol = "FC"
	ServiceObjectGroupServiceObjectsIpProtocolFIRE          ServiceObjectGroupServiceObjectsIpProtocol = "FIRE"
	ServiceObjectGroupServiceObjectsIpProtocolGGP           ServiceObjectGroupServiceObjectsIpProtocol = "GGP"
	ServiceObjectGroupServiceObjectsIpProtocolGMTP          ServiceObjectGroupServiceObjectsIpProtocol = "GMTP"
	ServiceObjectGroupServiceObjectsIpProtocolGRE           ServiceObjectGroupServiceObjectsIpProtocol = "GRE"
	ServiceObjectGroupServiceObjectsIpProtocolHIP           ServiceObjectGroupServiceObjectsIpProtocol = "HIP"
	ServiceObjectGroupServiceObjectsIpProtocolHMP           ServiceObjectGroupServiceObjectsIpProtocol = "HMP"
	ServiceObjectGroupServiceObjectsIpProtocolIATP          ServiceObjectGroupServiceObjectsIpProtocol = "IATP"
	ServiceObjectGroupServiceObjectsIpProtocolICMP          ServiceObjectGroupServiceObjectsIpProtocol = "ICMP"
	ServiceObjectGroupServiceObjectsIpProtocolIDPR          ServiceObjectGroupServiceObjectsIpProtocol = "IDPR"
	ServiceObjectGroupServiceObjectsIpProtocolIDPRCMTP      ServiceObjectGroupServiceObjectsIpProtocol = "IDPR-CMTP"
	ServiceObjectGroupServiceObjectsIpProtocolIDRP          ServiceObjectGroupServiceObjectsIpProtocol = "IDRP"
	ServiceObjectGroupServiceObjectsIpProtocolIFMP          ServiceObjectGroupServiceObjectsIpProtocol = "IFMP"
	ServiceObjectGroupServiceObjectsIpProtocolIGMP          ServiceObjectGroupServiceObjectsIpProtocol = "IGMP"
	ServiceObjectGroupServiceObjectsIpProtocolIGP           ServiceObjectGroupServiceObjectsIpProtocol = "IGP"
	ServiceObjectGroupServiceObjectsIpProtocolIL            ServiceObjectGroupServiceObjectsIpProtocol = "IL"
	ServiceObjectGroupServiceObjectsIpProtocolINLSP         ServiceObjectGroupServiceObjectsIpProtocol = "I-NLSP"
	ServiceObjectGroupServiceObjectsIpProtocolIPCV          ServiceObjectGroupServiceObjectsIpProtocol = "IPCV"
	ServiceObjectGroupServiceObjectsIpProtocolIPComp        ServiceObjectGroupServiceObjectsIpProtocol = "IPComp"
	ServiceObjectGroupServiceObjectsIpProtocolIPIP          ServiceObjectGroupServiceObjectsIpProtocol = "IPIP"
	ServiceObjectGroupServiceObjectsIpProtocolIPLT          ServiceObjectGroupServiceObjectsIpProtocol = "IPLT"
	ServiceObjectGroupServiceObjectsIpProtocolIPPC          ServiceObjectGroupServiceObjectsIpProtocol = "IPPC"
	ServiceObjectGroupServiceObjectsIpProtocolIPXInIP       ServiceObjectGroupServiceObjectsIpProtocol = "IPX-in-IP"
	ServiceObjectGroupServiceObjectsIpProtocolIRTP          ServiceObjectGroupServiceObjectsIpProtocol = "IRTP"
	ServiceObjectGroupServiceObjectsIpProtocolISOIP         ServiceObjectGroupServiceObjectsIpProtocol = "ISO-IP"
	ServiceObjectGroupServiceObjectsIpProtocolISOTP4        ServiceObjectGroupServiceObjectsIpProtocol = "ISO-TP4"
	ServiceObjectGroupServiceObjectsIpProtocolKRYPTOLAN     ServiceObjectGroupServiceObjectsIpProtocol = "KRYPTOLAN"
	ServiceObjectGroupServiceObjectsIpProtocolL2TP          ServiceObjectGroupServiceObjectsIpProtocol = "L2TP"
	ServiceObjectGroupServiceObjectsIpProtocolLARP          ServiceObjectGroupServiceObjectsIpProtocol = "LARP"
	ServiceObjectGroupServiceObjectsIpProtocolLEAF1         ServiceObjectGroupServiceObjectsIpProtocol = "LEAF-1"
	ServiceObjectGroupServiceObjectsIpProtocolLEAF2         ServiceObjectGroupServiceObjectsIpProtocol = "LEAF-2"
	ServiceObjectGroupServiceObjectsIpProtocolMERITINP      ServiceObjectGroupServiceObjectsIpProtocol = "MERIT-INP"
	ServiceObjectGroupServiceObjectsIpProtocolMFENSP        ServiceObjectGroupServiceObjectsIpProtocol = "MFE-NSP"
	ServiceObjectGroupServiceObjectsIpProtocolMOBILE        ServiceObjectGroupServiceObjectsIpProtocol = "MOBILE"
	ServiceObjectGroupServiceObjectsIpProtocolMTP           ServiceObjectGroupServiceObjectsIpProtocol = "MTP"
	ServiceObjectGroupServiceObjectsIpProtocolMUX           ServiceObjectGroupServiceObjectsIpProtocol = "MUX"
	ServiceObjectGroupServiceObjectsIpProtocolManet         ServiceObjectGroupServiceObjectsIpProtocol = "manet"
	ServiceObjectGroupServiceObjectsIpProtocolN3PC          ServiceObjectGroupServiceObjectsIpProtocol = "3PC"
	ServiceObjectGroupServiceObjectsIpProtocolNARP          ServiceObjectGroupServiceObjectsIpProtocol = "NARP"
	ServiceObjectGroupServiceObjectsIpProtocolNETBLT        ServiceObjectGroupServiceObjectsIpProtocol = "NETBLT"
	ServiceObjectGroupServiceObjectsIpProtocolNSFNETIGP     ServiceObjectGroupServiceObjectsIpProtocol = "NSFNET-IGP"
	ServiceObjectGroupServiceObjectsIpProtocolNVPII         ServiceObjectGroupServiceObjectsIpProtocol = "NVP-II"
	ServiceObjectGroupServiceObjectsIpProtocolOSPFIGP       ServiceObjectGroupServiceObjectsIpProtocol = "OSPFIGP"
	ServiceObjectGroupServiceObjectsIpProtocolPGM           ServiceObjectGroupServiceObjectsIpProtocol = "PGM"
	ServiceObjectGroupServiceObjectsIpProtocolPIM           ServiceObjectGroupServiceObjectsIpProtocol = "PIM"
	ServiceObjectGroupServiceObjectsIpProtocolPIPE          ServiceObjectGroupServiceObjectsIpProtocol = "PIPE"
	ServiceObjectGroupServiceObjectsIpProtocolPNNI          ServiceObjectGroupServiceObjectsIpProtocol = "PNNI"
	ServiceObjectGroupServiceObjectsIpProtocolPRM           ServiceObjectGroupServiceObjectsIpProtocol = "PRM"
	ServiceObjectGroupServiceObjectsIpProtocolPTP           ServiceObjectGroupServiceObjectsIpProtocol = "PTP"
	ServiceObjectGroupServiceObjectsIpProtocolPUP           ServiceObjectGroupServiceObjectsIpProtocol = "PUP"
	ServiceObjectGroupServiceObjectsIpProtocolPVP           ServiceObjectGroupServiceObjectsIpProtocol = "PVP"
	ServiceObjectGroupServiceObjectsIpProtocolQNX           ServiceObjectGroupServiceObjectsIpProtocol = "QNX"
	ServiceObjectGroupServiceObjectsIpProtocolRDP           ServiceObjectGroupServiceObjectsIpProtocol = "RDP"
	ServiceObjectGroupServiceObjectsIpProtocolROHC          ServiceObjectGroupServiceObjectsIpProtocol = "ROHC"
	ServiceObjectGroupServiceObjectsIpProtocolRSVP          ServiceObjectGroupServiceObjectsIpProtocol = "RSVP"
	ServiceObjectGroupServiceObjectsIpProtocolRSVPE2EIGNORE ServiceObjectGroupServiceObjectsIpProtocol = "RSVP-E2E-IGNORE"
	ServiceObjectGroupServiceObjectsIpProtocolRVD           ServiceObjectGroupServiceObjectsIpProtocol = "RVD"
	ServiceObjectGroupServiceObjectsIpProtocolSATEXPAK      ServiceObjectGroupServiceObjectsIpProtocol = "SAT-EXPAK"
	ServiceObjectGroupServiceObjectsIpProtocolSATMON        ServiceObjectGroupServiceObjectsIpProtocol = "SAT-MON"
	ServiceObjectGroupServiceObjectsIpProtocolSCCSP         ServiceObjectGroupServiceObjectsIpProtocol = "SCC-SP"
	ServiceObjectGroupServiceObjectsIpProtocolSCPS          ServiceObjectGroupServiceObjectsIpProtocol = "SCPS"
	ServiceObjectGroupServiceObjectsIpProtocolSCTP          ServiceObjectGroupServiceObjectsIpProtocol = "SCTP"
	ServiceObjectGroupServiceObjectsIpProtocolSDRP          ServiceObjectGroupServiceObjectsIpProtocol = "SDRP"
	ServiceObjectGroupServiceObjectsIpProtocolSECUREVMTP    ServiceObjectGroupServiceObjectsIpProtocol = "SECURE-VMTP"
	ServiceObjectGroupServiceObjectsIpProtocolSKIP          ServiceObjectGroupServiceObjectsIpProtocol = "SKIP"
	ServiceObjectGroupServiceObjectsIpProtocolSM            ServiceObjectGroupServiceObjectsIpProtocol = "SM"
	ServiceObjectGroupServiceObjectsIpProtocolSMP           ServiceObjectGroupServiceObjectsIpProtocol = "SMP"
	ServiceObjectGroupServiceObjectsIpProtocolSNP           ServiceObjectGroupServiceObjectsIpProtocol = "SNP"
	ServiceObjectGroupServiceObjectsIpProtocolSPS           ServiceObjectGroupServiceObjectsIpProtocol = "SPS"
	ServiceObjectGroupServiceObjectsIpProtocolSRP           ServiceObjectGroupServiceObjectsIpProtocol = "SRP"
	ServiceObjectGroupServiceObjectsIpProtocolSSCOPMCE      ServiceObjectGroupServiceObjectsIpProtocol = "SSCOPMCE"
	ServiceObjectGroupServiceObjectsIpProtocolSTP           ServiceObjectGroupServiceObjectsIpProtocol = "STP"
	ServiceObjectGroupServiceObjectsIpProtocolSUNND         ServiceObjectGroupServiceObjectsIpProtocol = "SUN-ND"
	ServiceObjectGroupServiceObjectsIpProtocolSpriteRPC     ServiceObjectGroupServiceObjectsIpProtocol = "Sprite-RPC"
	ServiceObjectGroupServiceObjectsIpProtocolTCF           ServiceObjectGroupServiceObjectsIpProtocol = "TCF"
	ServiceObjectGroupServiceObjectsIpProtocolTCP           ServiceObjectGroupServiceObjectsIpProtocol = "TCP"
	ServiceObjectGroupServiceObjectsIpProtocolTLSP          ServiceObjectGroupServiceObjectsIpProtocol = "TLSP"
	ServiceObjectGroupServiceObjectsIpProtocolTP            ServiceObjectGroupServiceObjectsIpProtocol = "TP++"
	ServiceObjectGroupServiceObjectsIpProtocolTRUNK1        ServiceObjectGroupServiceObjectsIpProtocol = "TRUNK-1"
	ServiceObjectGroupServiceObjectsIpProtocolTRUNK2        ServiceObjectGroupServiceObjectsIpProtocol = "TRUNK-2"
	ServiceObjectGroupServiceObjectsIpProtocolTTP           ServiceObjectGroupServiceObjectsIpProtocol = "TTP"
	ServiceObjectGroupServiceObjectsIpProtocolUDP           ServiceObjectGroupServiceObjectsIpProtocol = "UDP"
	ServiceObjectGroupServiceObjectsIpProtocolUDPLite       ServiceObjectGroupServiceObjectsIpProtocol = "UDPLite"
	ServiceObjectGroupServiceObjectsIpProtocolUTI           ServiceObjectGroupServiceObjectsIpProtocol = "UTI"
	ServiceObjectGroupServiceObjectsIpProtocolVINES         ServiceObjectGroupServiceObjectsIpProtocol = "VINES"
	ServiceObjectGroupServiceObjectsIpProtocolVISA          ServiceObjectGroupServiceObjectsIpProtocol = "VISA"
	ServiceObjectGroupServiceObjectsIpProtocolVMTP          ServiceObjectGroupServiceObjectsIpProtocol = "VMTP"
	ServiceObjectGroupServiceObjectsIpProtocolWBEXPAK       ServiceObjectGroupServiceObjectsIpProtocol = "WB-EXPAK"
	ServiceObjectGroupServiceObjectsIpProtocolWBMON         ServiceObjectGroupServiceObjectsIpProtocol = "WB-MON"
	ServiceObjectGroupServiceObjectsIpProtocolWESP          ServiceObjectGroupServiceObjectsIpProtocol = "WESP"
	ServiceObjectGroupServiceObjectsIpProtocolWSN           ServiceObjectGroupServiceObjectsIpProtocol = "WSN"
	ServiceObjectGroupServiceObjectsIpProtocolXNET          ServiceObjectGroupServiceObjectsIpProtocol = "XNET"
	ServiceObjectGroupServiceObjectsIpProtocolXNSIDP        ServiceObjectGroupServiceObjectsIpProtocol = "XNS-IDP"
	ServiceObjectGroupServiceObjectsIpProtocolXTP           ServiceObjectGroupServiceObjectsIpProtocol = "XTP"
)

// Defines values for ServiceObjectGroupServiceObjectsStatusLabel.
const (
	ServiceObjectGroupServiceObjectsStatusLabelActive         ServiceObjectGroupServiceObjectsStatusLabel = "Active"
	ServiceObjectGroupServiceObjectsStatusLabelDecommissioned ServiceObjectGroupServiceObjectsStatusLabel = "Decommissioned"
	ServiceObjectGroupServiceObjectsStatusLabelStaged         ServiceObjectGroupServiceObjectsStatusLabel = "Staged"
)

// Defines values for ServiceObjectGroupServiceObjectsStatusValue.
const (
	ServiceObjectGroupServiceObjectsStatusValueActive         ServiceObjectGroupServiceObjectsStatusValue = "active"
	ServiceObjectGroupServiceObjectsStatusValueDecommissioned ServiceObjectGroupServiceObjectsStatusValue = "decommissioned"
	ServiceObjectGroupServiceObjectsStatusValueStaged         ServiceObjectGroupServiceObjectsStatusValue = "staged"
)

// Defines values for ServiceObjectGroupStatusLabel.
const (
	ServiceObjectGroupStatusLabelActive         ServiceObjectGroupStatusLabel = "Active"
	ServiceObjectGroupStatusLabelDecommissioned ServiceObjectGroupStatusLabel = "Decommissioned"
	ServiceObjectGroupStatusLabelStaged         ServiceObjectGroupStatusLabel = "Staged"
)

// Defines values for ServiceObjectGroupStatusValue.
const (
	ServiceObjectGroupStatusValueActive         ServiceObjectGroupStatusValue = "active"
	ServiceObjectGroupStatusValueDecommissioned ServiceObjectGroupStatusValue = "decommissioned"
	ServiceObjectGroupStatusValueStaged         ServiceObjectGroupStatusValue = "staged"
)

// Defines values for SeverityEnum.
const (
	Critical SeverityEnum = "Critical"
	High     SeverityEnum = "High"
	Low      SeverityEnum = "Low"
	Medium   SeverityEnum = "Medium"
	None     SeverityEnum = "None"
)

// Defines values for SiteStatusLabel.
const (
	SiteStatusLabelActive          SiteStatusLabel = "Active"
	SiteStatusLabelDecommissioning SiteStatusLabel = "Decommissioning"
	SiteStatusLabelPlanned         SiteStatusLabel = "Planned"
	SiteStatusLabelRetired         SiteStatusLabel = "Retired"
	SiteStatusLabelStaging         SiteStatusLabel = "Staging"
)

// Defines values for SiteStatusValue.
const (
	SiteStatusValueActive          SiteStatusValue = "active"
	SiteStatusValueDecommissioning SiteStatusValue = "decommissioning"
	SiteStatusValuePlanned         SiteStatusValue = "planned"
	SiteStatusValueRetired         SiteStatusValue = "retired"
	SiteStatusValueStaging         SiteStatusValue = "staging"
)

// Defines values for Status2a0Enum.
const (
	Status2a0EnumActive    Status2a0Enum = "active"
	Status2a0EnumAvailable Status2a0Enum = "available"
	Status2a0EnumPlanned   Status2a0Enum = "planned"
)

// Defines values for Status8f7Enum.
const (
	Status8f7EnumActive         Status8f7Enum = "active"
	Status8f7EnumDecommissioned Status8f7Enum = "decommissioned"
	Status8f7EnumStaged         Status8f7Enum = "staged"
)

// Defines values for StatusD95Enum.
const (
	CANCELLED   StatusD95Enum = "CANCELLED"
	COMPLETED   StatusD95Enum = "COMPLETED"
	CONFIRMED   StatusD95Enum = "CONFIRMED"
	INPROCESS   StatusD95Enum = "IN-PROCESS"
	RESCHEDULED StatusD95Enum = "RE-SCHEDULED"
	TENTATIVE   StatusD95Enum = "TENTATIVE"
	UNKNOWN     StatusD95Enum = "UNKNOWN"
)

// Defines values for SubdeviceRoleEnum.
const (
	Child  SubdeviceRoleEnum = "child"
	Parent SubdeviceRoleEnum = "parent"
)

// Defines values for SupplyEnum.
const (
	SupplyEnumAc SupplyEnum = "ac"
	SupplyEnumDc SupplyEnum = "dc"
)

// Defines values for TermSideEnum.
const (
	TermSideEnumA TermSideEnum = "A"
	TermSideEnumZ TermSideEnum = "Z"
)

// Defines values for UserObjectStatusLabel.
const (
	UserObjectStatusLabelActive         UserObjectStatusLabel = "Active"
	UserObjectStatusLabelDecommissioned UserObjectStatusLabel = "Decommissioned"
	UserObjectStatusLabelStaged         UserObjectStatusLabel = "Staged"
)

// Defines values for UserObjectStatusValue.
const (
	UserObjectStatusValueActive         UserObjectStatusValue = "active"
	UserObjectStatusValueDecommissioned UserObjectStatusValue = "decommissioned"
	UserObjectStatusValueStaged         UserObjectStatusValue = "staged"
)

// Defines values for UserObjectGroupStatusLabel.
const (
	UserObjectGroupStatusLabelActive         UserObjectGroupStatusLabel = "Active"
	UserObjectGroupStatusLabelDecommissioned UserObjectGroupStatusLabel = "Decommissioned"
	UserObjectGroupStatusLabelStaged         UserObjectGroupStatusLabel = "Staged"
)

// Defines values for UserObjectGroupStatusValue.
const (
	UserObjectGroupStatusValueActive         UserObjectGroupStatusValue = "active"
	UserObjectGroupStatusValueDecommissioned UserObjectGroupStatusValue = "decommissioned"
	UserObjectGroupStatusValueStaged         UserObjectGroupStatusValue = "staged"
)

// Defines values for UserObjectGroupUserObjectsStatusLabel.
const (
	UserObjectGroupUserObjectsStatusLabelActive         UserObjectGroupUserObjectsStatusLabel = "Active"
	UserObjectGroupUserObjectsStatusLabelDecommissioned UserObjectGroupUserObjectsStatusLabel = "Decommissioned"
	UserObjectGroupUserObjectsStatusLabelStaged         UserObjectGroupUserObjectsStatusLabel = "Staged"
)

// Defines values for UserObjectGroupUserObjectsStatusValue.
const (
	UserObjectGroupUserObjectsStatusValueActive         UserObjectGroupUserObjectsStatusValue = "active"
	UserObjectGroupUserObjectsStatusValueDecommissioned UserObjectGroupUserObjectsStatusValue = "decommissioned"
	UserObjectGroupUserObjectsStatusValueStaged         UserObjectGroupUserObjectsStatusValue = "staged"
)

// Defines values for VLANStatusLabel.
const (
	VLANStatusLabelActive     VLANStatusLabel = "Active"
	VLANStatusLabelDeprecated VLANStatusLabel = "Deprecated"
	VLANStatusLabelReserved   VLANStatusLabel = "Reserved"
)

// Defines values for VLANStatusValue.
const (
	VLANStatusValueActive     VLANStatusValue = "active"
	VLANStatusValueDeprecated VLANStatusValue = "deprecated"
	VLANStatusValueReserved   VLANStatusValue = "reserved"
)

// Defines values for VLANStatusChoices.
const (
	VLANStatusChoicesActive     VLANStatusChoices = "active"
	VLANStatusChoicesDeprecated VLANStatusChoices = "deprecated"
	VLANStatusChoicesReserved   VLANStatusChoices = "reserved"
)

// Defines values for VMInterfaceSerializerVersion12ModeLabel.
const (
	VMInterfaceSerializerVersion12ModeLabelAccess    VMInterfaceSerializerVersion12ModeLabel = "Access"
	VMInterfaceSerializerVersion12ModeLabelTagged    VMInterfaceSerializerVersion12ModeLabel = "Tagged"
	VMInterfaceSerializerVersion12ModeLabelTaggedAll VMInterfaceSerializerVersion12ModeLabel = "Tagged (All)"
)

// Defines values for VMInterfaceSerializerVersion12ModeValue.
const (
	Access    VMInterfaceSerializerVersion12ModeValue = "access"
	Tagged    VMInterfaceSerializerVersion12ModeValue = "tagged"
	TaggedAll VMInterfaceSerializerVersion12ModeValue = "tagged-all"
)

// Defines values for VirtualMachineStatusChoices.
const (
	VirtualMachineStatusChoicesActive          VirtualMachineStatusChoices = "active"
	VirtualMachineStatusChoicesDecommissioning VirtualMachineStatusChoices = "decommissioning"
	VirtualMachineStatusChoicesFailed          VirtualMachineStatusChoices = "failed"
	VirtualMachineStatusChoicesOffline         VirtualMachineStatusChoices = "offline"
	VirtualMachineStatusChoicesPlanned         VirtualMachineStatusChoices = "planned"
	VirtualMachineStatusChoicesStaged          VirtualMachineStatusChoices = "staged"
)

// Defines values for VirtualMachineWithConfigContextStatusLabel.
const (
	VirtualMachineWithConfigContextStatusLabelActive          VirtualMachineWithConfigContextStatusLabel = "Active"
	VirtualMachineWithConfigContextStatusLabelDecommissioning VirtualMachineWithConfigContextStatusLabel = "Decommissioning"
	VirtualMachineWithConfigContextStatusLabelFailed          VirtualMachineWithConfigContextStatusLabel = "Failed"
	VirtualMachineWithConfigContextStatusLabelOffline         VirtualMachineWithConfigContextStatusLabel = "Offline"
	VirtualMachineWithConfigContextStatusLabelPlanned         VirtualMachineWithConfigContextStatusLabel = "Planned"
	VirtualMachineWithConfigContextStatusLabelStaged          VirtualMachineWithConfigContextStatusLabel = "Staged"
)

// Defines values for VirtualMachineWithConfigContextStatusValue.
const (
	VirtualMachineWithConfigContextStatusValueActive          VirtualMachineWithConfigContextStatusValue = "active"
	VirtualMachineWithConfigContextStatusValueDecommissioning VirtualMachineWithConfigContextStatusValue = "decommissioning"
	VirtualMachineWithConfigContextStatusValueFailed          VirtualMachineWithConfigContextStatusValue = "failed"
	VirtualMachineWithConfigContextStatusValueOffline         VirtualMachineWithConfigContextStatusValue = "offline"
	VirtualMachineWithConfigContextStatusValuePlanned         VirtualMachineWithConfigContextStatusValue = "planned"
	VirtualMachineWithConfigContextStatusValueStaged          VirtualMachineWithConfigContextStatusValue = "staged"
)

// Defines values for WidthEnum.
const (
	WidthEnumN10 WidthEnum = 10
	WidthEnumN19 WidthEnum = 19
	WidthEnumN21 WidthEnum = 21
	WidthEnumN23 WidthEnum = 23
)

// Defines values for ZoneStatusLabel.
const (
	ZoneStatusLabelActive         ZoneStatusLabel = "Active"
	ZoneStatusLabelDecommissioned ZoneStatusLabel = "Decommissioned"
	ZoneStatusLabelStaged         ZoneStatusLabel = "Staged"
)

// Defines values for ZoneStatusValue.
const (
	Active         ZoneStatusValue = "active"
	Decommissioned ZoneStatusValue = "decommissioned"
	Staged         ZoneStatusValue = "staged"
)

// Defines values for DcimDevicesListParamsFace.
const (
	DcimDevicesListParamsFaceFront DcimDevicesListParamsFace = "front"
	DcimDevicesListParamsFaceRear  DcimDevicesListParamsFace = "rear"
)

// Defines values for DcimDevicesListParamsFaceN.
const (
	DcimDevicesListParamsFaceNFront DcimDevicesListParamsFaceN = "front"
	DcimDevicesListParamsFaceNRear  DcimDevicesListParamsFaceN = "rear"
)

// Defines values for DcimRacksElevationListParamsFace.
const (
	DcimRacksElevationListParamsFaceFront DcimRacksElevationListParamsFace = "front"
	DcimRacksElevationListParamsFaceRear  DcimRacksElevationListParamsFace = "rear"
)

// Defines values for DcimRacksElevationListParamsRender.
const (
	DcimRacksElevationListParamsRenderJson DcimRacksElevationListParamsRender = "json"
	DcimRacksElevationListParamsRenderSvg  DcimRacksElevationListParamsRender = "svg"
)

// Defines values for ExtrasDynamicGroupMembershipsListParamsOperator.
const (
	ExtrasDynamicGroupMembershipsListParamsOperatorDifference   ExtrasDynamicGroupMembershipsListParamsOperator = "difference"
	ExtrasDynamicGroupMembershipsListParamsOperatorIntersection ExtrasDynamicGroupMembershipsListParamsOperator = "intersection"
	ExtrasDynamicGroupMembershipsListParamsOperatorUnion        ExtrasDynamicGroupMembershipsListParamsOperator = "union"
)

// Defines values for ExtrasDynamicGroupMembershipsListParamsOperatorN.
const (
	Difference   ExtrasDynamicGroupMembershipsListParamsOperatorN = "difference"
	Intersection ExtrasDynamicGroupMembershipsListParamsOperatorN = "intersection"
	Union        ExtrasDynamicGroupMembershipsListParamsOperatorN = "union"
)

// Defines values for PluginsFirewallPolicyRuleListParamsAction.
const (
	PluginsFirewallPolicyRuleListParamsActionAllow  PluginsFirewallPolicyRuleListParamsAction = "allow"
	PluginsFirewallPolicyRuleListParamsActionDeny   PluginsFirewallPolicyRuleListParamsAction = "deny"
	PluginsFirewallPolicyRuleListParamsActionDrop   PluginsFirewallPolicyRuleListParamsAction = "drop"
	PluginsFirewallPolicyRuleListParamsActionRemark PluginsFirewallPolicyRuleListParamsAction = "remark"
)

// Defines values for PluginsFirewallPolicyRuleListParamsActionN.
const (
	Allow  PluginsFirewallPolicyRuleListParamsActionN = "allow"
	Deny   PluginsFirewallPolicyRuleListParamsActionN = "deny"
	Drop   PluginsFirewallPolicyRuleListParamsActionN = "drop"
	Remark PluginsFirewallPolicyRuleListParamsActionN = "remark"
)

// Defines values for PluginsFirewallServiceObjectListParamsIpProtocol.
const (
	PluginsFirewallServiceObjectListParamsIpProtocolAH            PluginsFirewallServiceObjectListParamsIpProtocol = "AH"
	PluginsFirewallServiceObjectListParamsIpProtocolAN            PluginsFirewallServiceObjectListParamsIpProtocol = "A/N"
	PluginsFirewallServiceObjectListParamsIpProtocolARIS          PluginsFirewallServiceObjectListParamsIpProtocol = "ARIS"
	PluginsFirewallServiceObjectListParamsIpProtocolAX25          PluginsFirewallServiceObjectListParamsIpProtocol = "AX.25"
	PluginsFirewallServiceObjectListParamsIpProtocolBBNRCCMON     PluginsFirewallServiceObjectListParamsIpProtocol = "BBN-RCC-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolBNA           PluginsFirewallServiceObjectListParamsIpProtocol = "BNA"
	PluginsFirewallServiceObjectListParamsIpProtocolBRSATMON      PluginsFirewallServiceObjectListParamsIpProtocol = "BR-SAT-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolCBT           PluginsFirewallServiceObjectListParamsIpProtocol = "CBT"
	PluginsFirewallServiceObjectListParamsIpProtocolCFTP          PluginsFirewallServiceObjectListParamsIpProtocol = "CFTP"
	PluginsFirewallServiceObjectListParamsIpProtocolCHAOS         PluginsFirewallServiceObjectListParamsIpProtocol = "CHAOS"
	PluginsFirewallServiceObjectListParamsIpProtocolCPHB          PluginsFirewallServiceObjectListParamsIpProtocol = "CPHB"
	PluginsFirewallServiceObjectListParamsIpProtocolCPNX          PluginsFirewallServiceObjectListParamsIpProtocol = "CPNX"
	PluginsFirewallServiceObjectListParamsIpProtocolCRTP          PluginsFirewallServiceObjectListParamsIpProtocol = "CRTP"
	PluginsFirewallServiceObjectListParamsIpProtocolCRUDP         PluginsFirewallServiceObjectListParamsIpProtocol = "CRUDP"
	PluginsFirewallServiceObjectListParamsIpProtocolCompaqPeer    PluginsFirewallServiceObjectListParamsIpProtocol = "Compaq-Peer"
	PluginsFirewallServiceObjectListParamsIpProtocolDCCP          PluginsFirewallServiceObjectListParamsIpProtocol = "DCCP"
	PluginsFirewallServiceObjectListParamsIpProtocolDCNMEAS       PluginsFirewallServiceObjectListParamsIpProtocol = "DCN-MEAS"
	PluginsFirewallServiceObjectListParamsIpProtocolDDP           PluginsFirewallServiceObjectListParamsIpProtocol = "DDP"
	PluginsFirewallServiceObjectListParamsIpProtocolDDX           PluginsFirewallServiceObjectListParamsIpProtocol = "DDX"
	PluginsFirewallServiceObjectListParamsIpProtocolDGP           PluginsFirewallServiceObjectListParamsIpProtocol = "DGP"
	PluginsFirewallServiceObjectListParamsIpProtocolDSR           PluginsFirewallServiceObjectListParamsIpProtocol = "DSR"
	PluginsFirewallServiceObjectListParamsIpProtocolEGP           PluginsFirewallServiceObjectListParamsIpProtocol = "EGP"
	PluginsFirewallServiceObjectListParamsIpProtocolEIGRP         PluginsFirewallServiceObjectListParamsIpProtocol = "EIGRP"
	PluginsFirewallServiceObjectListParamsIpProtocolEMCON         PluginsFirewallServiceObjectListParamsIpProtocol = "EMCON"
	PluginsFirewallServiceObjectListParamsIpProtocolENCAP         PluginsFirewallServiceObjectListParamsIpProtocol = "ENCAP"
	PluginsFirewallServiceObjectListParamsIpProtocolESP           PluginsFirewallServiceObjectListParamsIpProtocol = "ESP"
	PluginsFirewallServiceObjectListParamsIpProtocolETHERIP       PluginsFirewallServiceObjectListParamsIpProtocol = "ETHERIP"
	PluginsFirewallServiceObjectListParamsIpProtocolEthernet      PluginsFirewallServiceObjectListParamsIpProtocol = "Ethernet"
	PluginsFirewallServiceObjectListParamsIpProtocolFC            PluginsFirewallServiceObjectListParamsIpProtocol = "FC"
	PluginsFirewallServiceObjectListParamsIpProtocolFIRE          PluginsFirewallServiceObjectListParamsIpProtocol = "FIRE"
	PluginsFirewallServiceObjectListParamsIpProtocolGGP           PluginsFirewallServiceObjectListParamsIpProtocol = "GGP"
	PluginsFirewallServiceObjectListParamsIpProtocolGMTP          PluginsFirewallServiceObjectListParamsIpProtocol = "GMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolGRE           PluginsFirewallServiceObjectListParamsIpProtocol = "GRE"
	PluginsFirewallServiceObjectListParamsIpProtocolHIP           PluginsFirewallServiceObjectListParamsIpProtocol = "HIP"
	PluginsFirewallServiceObjectListParamsIpProtocolHMP           PluginsFirewallServiceObjectListParamsIpProtocol = "HMP"
	PluginsFirewallServiceObjectListParamsIpProtocolIATP          PluginsFirewallServiceObjectListParamsIpProtocol = "IATP"
	PluginsFirewallServiceObjectListParamsIpProtocolICMP          PluginsFirewallServiceObjectListParamsIpProtocol = "ICMP"
	PluginsFirewallServiceObjectListParamsIpProtocolIDPR          PluginsFirewallServiceObjectListParamsIpProtocol = "IDPR"
	PluginsFirewallServiceObjectListParamsIpProtocolIDPRCMTP      PluginsFirewallServiceObjectListParamsIpProtocol = "IDPR-CMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolIDRP          PluginsFirewallServiceObjectListParamsIpProtocol = "IDRP"
	PluginsFirewallServiceObjectListParamsIpProtocolIFMP          PluginsFirewallServiceObjectListParamsIpProtocol = "IFMP"
	PluginsFirewallServiceObjectListParamsIpProtocolIGMP          PluginsFirewallServiceObjectListParamsIpProtocol = "IGMP"
	PluginsFirewallServiceObjectListParamsIpProtocolIGP           PluginsFirewallServiceObjectListParamsIpProtocol = "IGP"
	PluginsFirewallServiceObjectListParamsIpProtocolIL            PluginsFirewallServiceObjectListParamsIpProtocol = "IL"
	PluginsFirewallServiceObjectListParamsIpProtocolINLSP         PluginsFirewallServiceObjectListParamsIpProtocol = "I-NLSP"
	PluginsFirewallServiceObjectListParamsIpProtocolIPCV          PluginsFirewallServiceObjectListParamsIpProtocol = "IPCV"
	PluginsFirewallServiceObjectListParamsIpProtocolIPComp        PluginsFirewallServiceObjectListParamsIpProtocol = "IPComp"
	PluginsFirewallServiceObjectListParamsIpProtocolIPIP          PluginsFirewallServiceObjectListParamsIpProtocol = "IPIP"
	PluginsFirewallServiceObjectListParamsIpProtocolIPLT          PluginsFirewallServiceObjectListParamsIpProtocol = "IPLT"
	PluginsFirewallServiceObjectListParamsIpProtocolIPPC          PluginsFirewallServiceObjectListParamsIpProtocol = "IPPC"
	PluginsFirewallServiceObjectListParamsIpProtocolIPXInIP       PluginsFirewallServiceObjectListParamsIpProtocol = "IPX-in-IP"
	PluginsFirewallServiceObjectListParamsIpProtocolIRTP          PluginsFirewallServiceObjectListParamsIpProtocol = "IRTP"
	PluginsFirewallServiceObjectListParamsIpProtocolISOIP         PluginsFirewallServiceObjectListParamsIpProtocol = "ISO-IP"
	PluginsFirewallServiceObjectListParamsIpProtocolISOTP4        PluginsFirewallServiceObjectListParamsIpProtocol = "ISO-TP4"
	PluginsFirewallServiceObjectListParamsIpProtocolKRYPTOLAN     PluginsFirewallServiceObjectListParamsIpProtocol = "KRYPTOLAN"
	PluginsFirewallServiceObjectListParamsIpProtocolL2TP          PluginsFirewallServiceObjectListParamsIpProtocol = "L2TP"
	PluginsFirewallServiceObjectListParamsIpProtocolLARP          PluginsFirewallServiceObjectListParamsIpProtocol = "LARP"
	PluginsFirewallServiceObjectListParamsIpProtocolLEAF1         PluginsFirewallServiceObjectListParamsIpProtocol = "LEAF-1"
	PluginsFirewallServiceObjectListParamsIpProtocolLEAF2         PluginsFirewallServiceObjectListParamsIpProtocol = "LEAF-2"
	PluginsFirewallServiceObjectListParamsIpProtocolMERITINP      PluginsFirewallServiceObjectListParamsIpProtocol = "MERIT-INP"
	PluginsFirewallServiceObjectListParamsIpProtocolMFENSP        PluginsFirewallServiceObjectListParamsIpProtocol = "MFE-NSP"
	PluginsFirewallServiceObjectListParamsIpProtocolMOBILE        PluginsFirewallServiceObjectListParamsIpProtocol = "MOBILE"
	PluginsFirewallServiceObjectListParamsIpProtocolMTP           PluginsFirewallServiceObjectListParamsIpProtocol = "MTP"
	PluginsFirewallServiceObjectListParamsIpProtocolMUX           PluginsFirewallServiceObjectListParamsIpProtocol = "MUX"
	PluginsFirewallServiceObjectListParamsIpProtocolManet         PluginsFirewallServiceObjectListParamsIpProtocol = "manet"
	PluginsFirewallServiceObjectListParamsIpProtocolN3PC          PluginsFirewallServiceObjectListParamsIpProtocol = "3PC"
	PluginsFirewallServiceObjectListParamsIpProtocolNARP          PluginsFirewallServiceObjectListParamsIpProtocol = "NARP"
	PluginsFirewallServiceObjectListParamsIpProtocolNETBLT        PluginsFirewallServiceObjectListParamsIpProtocol = "NETBLT"
	PluginsFirewallServiceObjectListParamsIpProtocolNSFNETIGP     PluginsFirewallServiceObjectListParamsIpProtocol = "NSFNET-IGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNVPII         PluginsFirewallServiceObjectListParamsIpProtocol = "NVP-II"
	PluginsFirewallServiceObjectListParamsIpProtocolOSPFIGP       PluginsFirewallServiceObjectListParamsIpProtocol = "OSPFIGP"
	PluginsFirewallServiceObjectListParamsIpProtocolPGM           PluginsFirewallServiceObjectListParamsIpProtocol = "PGM"
	PluginsFirewallServiceObjectListParamsIpProtocolPIM           PluginsFirewallServiceObjectListParamsIpProtocol = "PIM"
	PluginsFirewallServiceObjectListParamsIpProtocolPIPE          PluginsFirewallServiceObjectListParamsIpProtocol = "PIPE"
	PluginsFirewallServiceObjectListParamsIpProtocolPNNI          PluginsFirewallServiceObjectListParamsIpProtocol = "PNNI"
	PluginsFirewallServiceObjectListParamsIpProtocolPRM           PluginsFirewallServiceObjectListParamsIpProtocol = "PRM"
	PluginsFirewallServiceObjectListParamsIpProtocolPTP           PluginsFirewallServiceObjectListParamsIpProtocol = "PTP"
	PluginsFirewallServiceObjectListParamsIpProtocolPUP           PluginsFirewallServiceObjectListParamsIpProtocol = "PUP"
	PluginsFirewallServiceObjectListParamsIpProtocolPVP           PluginsFirewallServiceObjectListParamsIpProtocol = "PVP"
	PluginsFirewallServiceObjectListParamsIpProtocolQNX           PluginsFirewallServiceObjectListParamsIpProtocol = "QNX"
	PluginsFirewallServiceObjectListParamsIpProtocolRDP           PluginsFirewallServiceObjectListParamsIpProtocol = "RDP"
	PluginsFirewallServiceObjectListParamsIpProtocolROHC          PluginsFirewallServiceObjectListParamsIpProtocol = "ROHC"
	PluginsFirewallServiceObjectListParamsIpProtocolRSVP          PluginsFirewallServiceObjectListParamsIpProtocol = "RSVP"
	PluginsFirewallServiceObjectListParamsIpProtocolRSVPE2EIGNORE PluginsFirewallServiceObjectListParamsIpProtocol = "RSVP-E2E-IGNORE"
	PluginsFirewallServiceObjectListParamsIpProtocolRVD           PluginsFirewallServiceObjectListParamsIpProtocol = "RVD"
	PluginsFirewallServiceObjectListParamsIpProtocolSATEXPAK      PluginsFirewallServiceObjectListParamsIpProtocol = "SAT-EXPAK"
	PluginsFirewallServiceObjectListParamsIpProtocolSATMON        PluginsFirewallServiceObjectListParamsIpProtocol = "SAT-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolSCCSP         PluginsFirewallServiceObjectListParamsIpProtocol = "SCC-SP"
	PluginsFirewallServiceObjectListParamsIpProtocolSCPS          PluginsFirewallServiceObjectListParamsIpProtocol = "SCPS"
	PluginsFirewallServiceObjectListParamsIpProtocolSCTP          PluginsFirewallServiceObjectListParamsIpProtocol = "SCTP"
	PluginsFirewallServiceObjectListParamsIpProtocolSDRP          PluginsFirewallServiceObjectListParamsIpProtocol = "SDRP"
	PluginsFirewallServiceObjectListParamsIpProtocolSECUREVMTP    PluginsFirewallServiceObjectListParamsIpProtocol = "SECURE-VMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolSKIP          PluginsFirewallServiceObjectListParamsIpProtocol = "SKIP"
	PluginsFirewallServiceObjectListParamsIpProtocolSM            PluginsFirewallServiceObjectListParamsIpProtocol = "SM"
	PluginsFirewallServiceObjectListParamsIpProtocolSMP           PluginsFirewallServiceObjectListParamsIpProtocol = "SMP"
	PluginsFirewallServiceObjectListParamsIpProtocolSNP           PluginsFirewallServiceObjectListParamsIpProtocol = "SNP"
	PluginsFirewallServiceObjectListParamsIpProtocolSPS           PluginsFirewallServiceObjectListParamsIpProtocol = "SPS"
	PluginsFirewallServiceObjectListParamsIpProtocolSRP           PluginsFirewallServiceObjectListParamsIpProtocol = "SRP"
	PluginsFirewallServiceObjectListParamsIpProtocolSSCOPMCE      PluginsFirewallServiceObjectListParamsIpProtocol = "SSCOPMCE"
	PluginsFirewallServiceObjectListParamsIpProtocolSTP           PluginsFirewallServiceObjectListParamsIpProtocol = "STP"
	PluginsFirewallServiceObjectListParamsIpProtocolSUNND         PluginsFirewallServiceObjectListParamsIpProtocol = "SUN-ND"
	PluginsFirewallServiceObjectListParamsIpProtocolSpriteRPC     PluginsFirewallServiceObjectListParamsIpProtocol = "Sprite-RPC"
	PluginsFirewallServiceObjectListParamsIpProtocolTCF           PluginsFirewallServiceObjectListParamsIpProtocol = "TCF"
	PluginsFirewallServiceObjectListParamsIpProtocolTCP           PluginsFirewallServiceObjectListParamsIpProtocol = "TCP"
	PluginsFirewallServiceObjectListParamsIpProtocolTLSP          PluginsFirewallServiceObjectListParamsIpProtocol = "TLSP"
	PluginsFirewallServiceObjectListParamsIpProtocolTP            PluginsFirewallServiceObjectListParamsIpProtocol = "TP++"
	PluginsFirewallServiceObjectListParamsIpProtocolTRUNK1        PluginsFirewallServiceObjectListParamsIpProtocol = "TRUNK-1"
	PluginsFirewallServiceObjectListParamsIpProtocolTRUNK2        PluginsFirewallServiceObjectListParamsIpProtocol = "TRUNK-2"
	PluginsFirewallServiceObjectListParamsIpProtocolTTP           PluginsFirewallServiceObjectListParamsIpProtocol = "TTP"
	PluginsFirewallServiceObjectListParamsIpProtocolUDP           PluginsFirewallServiceObjectListParamsIpProtocol = "UDP"
	PluginsFirewallServiceObjectListParamsIpProtocolUDPLite       PluginsFirewallServiceObjectListParamsIpProtocol = "UDPLite"
	PluginsFirewallServiceObjectListParamsIpProtocolUTI           PluginsFirewallServiceObjectListParamsIpProtocol = "UTI"
	PluginsFirewallServiceObjectListParamsIpProtocolVINES         PluginsFirewallServiceObjectListParamsIpProtocol = "VINES"
	PluginsFirewallServiceObjectListParamsIpProtocolVISA          PluginsFirewallServiceObjectListParamsIpProtocol = "VISA"
	PluginsFirewallServiceObjectListParamsIpProtocolVMTP          PluginsFirewallServiceObjectListParamsIpProtocol = "VMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolWBEXPAK       PluginsFirewallServiceObjectListParamsIpProtocol = "WB-EXPAK"
	PluginsFirewallServiceObjectListParamsIpProtocolWBMON         PluginsFirewallServiceObjectListParamsIpProtocol = "WB-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolWESP          PluginsFirewallServiceObjectListParamsIpProtocol = "WESP"
	PluginsFirewallServiceObjectListParamsIpProtocolWSN           PluginsFirewallServiceObjectListParamsIpProtocol = "WSN"
	PluginsFirewallServiceObjectListParamsIpProtocolXNET          PluginsFirewallServiceObjectListParamsIpProtocol = "XNET"
	PluginsFirewallServiceObjectListParamsIpProtocolXNSIDP        PluginsFirewallServiceObjectListParamsIpProtocol = "XNS-IDP"
	PluginsFirewallServiceObjectListParamsIpProtocolXTP           PluginsFirewallServiceObjectListParamsIpProtocol = "XTP"
)

// Defines values for PluginsFirewallServiceObjectListParamsIpProtocolN.
const (
	PluginsFirewallServiceObjectListParamsIpProtocolNAH            PluginsFirewallServiceObjectListParamsIpProtocolN = "AH"
	PluginsFirewallServiceObjectListParamsIpProtocolNAN            PluginsFirewallServiceObjectListParamsIpProtocolN = "A/N"
	PluginsFirewallServiceObjectListParamsIpProtocolNARIS          PluginsFirewallServiceObjectListParamsIpProtocolN = "ARIS"
	PluginsFirewallServiceObjectListParamsIpProtocolNAX25          PluginsFirewallServiceObjectListParamsIpProtocolN = "AX.25"
	PluginsFirewallServiceObjectListParamsIpProtocolNBBNRCCMON     PluginsFirewallServiceObjectListParamsIpProtocolN = "BBN-RCC-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolNBNA           PluginsFirewallServiceObjectListParamsIpProtocolN = "BNA"
	PluginsFirewallServiceObjectListParamsIpProtocolNBRSATMON      PluginsFirewallServiceObjectListParamsIpProtocolN = "BR-SAT-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolNCBT           PluginsFirewallServiceObjectListParamsIpProtocolN = "CBT"
	PluginsFirewallServiceObjectListParamsIpProtocolNCFTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "CFTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNCHAOS         PluginsFirewallServiceObjectListParamsIpProtocolN = "CHAOS"
	PluginsFirewallServiceObjectListParamsIpProtocolNCPHB          PluginsFirewallServiceObjectListParamsIpProtocolN = "CPHB"
	PluginsFirewallServiceObjectListParamsIpProtocolNCPNX          PluginsFirewallServiceObjectListParamsIpProtocolN = "CPNX"
	PluginsFirewallServiceObjectListParamsIpProtocolNCRTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "CRTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNCRUDP         PluginsFirewallServiceObjectListParamsIpProtocolN = "CRUDP"
	PluginsFirewallServiceObjectListParamsIpProtocolNCompaqPeer    PluginsFirewallServiceObjectListParamsIpProtocolN = "Compaq-Peer"
	PluginsFirewallServiceObjectListParamsIpProtocolNDCCP          PluginsFirewallServiceObjectListParamsIpProtocolN = "DCCP"
	PluginsFirewallServiceObjectListParamsIpProtocolNDCNMEAS       PluginsFirewallServiceObjectListParamsIpProtocolN = "DCN-MEAS"
	PluginsFirewallServiceObjectListParamsIpProtocolNDDP           PluginsFirewallServiceObjectListParamsIpProtocolN = "DDP"
	PluginsFirewallServiceObjectListParamsIpProtocolNDDX           PluginsFirewallServiceObjectListParamsIpProtocolN = "DDX"
	PluginsFirewallServiceObjectListParamsIpProtocolNDGP           PluginsFirewallServiceObjectListParamsIpProtocolN = "DGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNDSR           PluginsFirewallServiceObjectListParamsIpProtocolN = "DSR"
	PluginsFirewallServiceObjectListParamsIpProtocolNEGP           PluginsFirewallServiceObjectListParamsIpProtocolN = "EGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNEIGRP         PluginsFirewallServiceObjectListParamsIpProtocolN = "EIGRP"
	PluginsFirewallServiceObjectListParamsIpProtocolNEMCON         PluginsFirewallServiceObjectListParamsIpProtocolN = "EMCON"
	PluginsFirewallServiceObjectListParamsIpProtocolNENCAP         PluginsFirewallServiceObjectListParamsIpProtocolN = "ENCAP"
	PluginsFirewallServiceObjectListParamsIpProtocolNESP           PluginsFirewallServiceObjectListParamsIpProtocolN = "ESP"
	PluginsFirewallServiceObjectListParamsIpProtocolNETHERIP       PluginsFirewallServiceObjectListParamsIpProtocolN = "ETHERIP"
	PluginsFirewallServiceObjectListParamsIpProtocolNEthernet      PluginsFirewallServiceObjectListParamsIpProtocolN = "Ethernet"
	PluginsFirewallServiceObjectListParamsIpProtocolNFC            PluginsFirewallServiceObjectListParamsIpProtocolN = "FC"
	PluginsFirewallServiceObjectListParamsIpProtocolNFIRE          PluginsFirewallServiceObjectListParamsIpProtocolN = "FIRE"
	PluginsFirewallServiceObjectListParamsIpProtocolNGGP           PluginsFirewallServiceObjectListParamsIpProtocolN = "GGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNGMTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "GMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNGRE           PluginsFirewallServiceObjectListParamsIpProtocolN = "GRE"
	PluginsFirewallServiceObjectListParamsIpProtocolNHIP           PluginsFirewallServiceObjectListParamsIpProtocolN = "HIP"
	PluginsFirewallServiceObjectListParamsIpProtocolNHMP           PluginsFirewallServiceObjectListParamsIpProtocolN = "HMP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIATP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IATP"
	PluginsFirewallServiceObjectListParamsIpProtocolNICMP          PluginsFirewallServiceObjectListParamsIpProtocolN = "ICMP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIDPR          PluginsFirewallServiceObjectListParamsIpProtocolN = "IDPR"
	PluginsFirewallServiceObjectListParamsIpProtocolNIDPRCMTP      PluginsFirewallServiceObjectListParamsIpProtocolN = "IDPR-CMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIDRP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IDRP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIFMP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IFMP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIGMP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IGMP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIGP           PluginsFirewallServiceObjectListParamsIpProtocolN = "IGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIL            PluginsFirewallServiceObjectListParamsIpProtocolN = "IL"
	PluginsFirewallServiceObjectListParamsIpProtocolNINLSP         PluginsFirewallServiceObjectListParamsIpProtocolN = "I-NLSP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPCV          PluginsFirewallServiceObjectListParamsIpProtocolN = "IPCV"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPComp        PluginsFirewallServiceObjectListParamsIpProtocolN = "IPComp"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPIP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IPIP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPLT          PluginsFirewallServiceObjectListParamsIpProtocolN = "IPLT"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPPC          PluginsFirewallServiceObjectListParamsIpProtocolN = "IPPC"
	PluginsFirewallServiceObjectListParamsIpProtocolNIPXInIP       PluginsFirewallServiceObjectListParamsIpProtocolN = "IPX-in-IP"
	PluginsFirewallServiceObjectListParamsIpProtocolNIRTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "IRTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNISOIP         PluginsFirewallServiceObjectListParamsIpProtocolN = "ISO-IP"
	PluginsFirewallServiceObjectListParamsIpProtocolNISOTP4        PluginsFirewallServiceObjectListParamsIpProtocolN = "ISO-TP4"
	PluginsFirewallServiceObjectListParamsIpProtocolNKRYPTOLAN     PluginsFirewallServiceObjectListParamsIpProtocolN = "KRYPTOLAN"
	PluginsFirewallServiceObjectListParamsIpProtocolNL2TP          PluginsFirewallServiceObjectListParamsIpProtocolN = "L2TP"
	PluginsFirewallServiceObjectListParamsIpProtocolNLARP          PluginsFirewallServiceObjectListParamsIpProtocolN = "LARP"
	PluginsFirewallServiceObjectListParamsIpProtocolNLEAF1         PluginsFirewallServiceObjectListParamsIpProtocolN = "LEAF-1"
	PluginsFirewallServiceObjectListParamsIpProtocolNLEAF2         PluginsFirewallServiceObjectListParamsIpProtocolN = "LEAF-2"
	PluginsFirewallServiceObjectListParamsIpProtocolNMERITINP      PluginsFirewallServiceObjectListParamsIpProtocolN = "MERIT-INP"
	PluginsFirewallServiceObjectListParamsIpProtocolNMFENSP        PluginsFirewallServiceObjectListParamsIpProtocolN = "MFE-NSP"
	PluginsFirewallServiceObjectListParamsIpProtocolNMOBILE        PluginsFirewallServiceObjectListParamsIpProtocolN = "MOBILE"
	PluginsFirewallServiceObjectListParamsIpProtocolNMTP           PluginsFirewallServiceObjectListParamsIpProtocolN = "MTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNMUX           PluginsFirewallServiceObjectListParamsIpProtocolN = "MUX"
	PluginsFirewallServiceObjectListParamsIpProtocolNManet         PluginsFirewallServiceObjectListParamsIpProtocolN = "manet"
	PluginsFirewallServiceObjectListParamsIpProtocolNN3PC          PluginsFirewallServiceObjectListParamsIpProtocolN = "3PC"
	PluginsFirewallServiceObjectListParamsIpProtocolNNARP          PluginsFirewallServiceObjectListParamsIpProtocolN = "NARP"
	PluginsFirewallServiceObjectListParamsIpProtocolNNETBLT        PluginsFirewallServiceObjectListParamsIpProtocolN = "NETBLT"
	PluginsFirewallServiceObjectListParamsIpProtocolNNSFNETIGP     PluginsFirewallServiceObjectListParamsIpProtocolN = "NSFNET-IGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNNVPII         PluginsFirewallServiceObjectListParamsIpProtocolN = "NVP-II"
	PluginsFirewallServiceObjectListParamsIpProtocolNOSPFIGP       PluginsFirewallServiceObjectListParamsIpProtocolN = "OSPFIGP"
	PluginsFirewallServiceObjectListParamsIpProtocolNPGM           PluginsFirewallServiceObjectListParamsIpProtocolN = "PGM"
	PluginsFirewallServiceObjectListParamsIpProtocolNPIM           PluginsFirewallServiceObjectListParamsIpProtocolN = "PIM"
	PluginsFirewallServiceObjectListParamsIpProtocolNPIPE          PluginsFirewallServiceObjectListParamsIpProtocolN = "PIPE"
	PluginsFirewallServiceObjectListParamsIpProtocolNPNNI          PluginsFirewallServiceObjectListParamsIpProtocolN = "PNNI"
	PluginsFirewallServiceObjectListParamsIpProtocolNPRM           PluginsFirewallServiceObjectListParamsIpProtocolN = "PRM"
	PluginsFirewallServiceObjectListParamsIpProtocolNPTP           PluginsFirewallServiceObjectListParamsIpProtocolN = "PTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNPUP           PluginsFirewallServiceObjectListParamsIpProtocolN = "PUP"
	PluginsFirewallServiceObjectListParamsIpProtocolNPVP           PluginsFirewallServiceObjectListParamsIpProtocolN = "PVP"
	PluginsFirewallServiceObjectListParamsIpProtocolNQNX           PluginsFirewallServiceObjectListParamsIpProtocolN = "QNX"
	PluginsFirewallServiceObjectListParamsIpProtocolNRDP           PluginsFirewallServiceObjectListParamsIpProtocolN = "RDP"
	PluginsFirewallServiceObjectListParamsIpProtocolNROHC          PluginsFirewallServiceObjectListParamsIpProtocolN = "ROHC"
	PluginsFirewallServiceObjectListParamsIpProtocolNRSVP          PluginsFirewallServiceObjectListParamsIpProtocolN = "RSVP"
	PluginsFirewallServiceObjectListParamsIpProtocolNRSVPE2EIGNORE PluginsFirewallServiceObjectListParamsIpProtocolN = "RSVP-E2E-IGNORE"
	PluginsFirewallServiceObjectListParamsIpProtocolNRVD           PluginsFirewallServiceObjectListParamsIpProtocolN = "RVD"
	PluginsFirewallServiceObjectListParamsIpProtocolNSATEXPAK      PluginsFirewallServiceObjectListParamsIpProtocolN = "SAT-EXPAK"
	PluginsFirewallServiceObjectListParamsIpProtocolNSATMON        PluginsFirewallServiceObjectListParamsIpProtocolN = "SAT-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolNSCCSP         PluginsFirewallServiceObjectListParamsIpProtocolN = "SCC-SP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSCPS          PluginsFirewallServiceObjectListParamsIpProtocolN = "SCPS"
	PluginsFirewallServiceObjectListParamsIpProtocolNSCTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "SCTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSDRP          PluginsFirewallServiceObjectListParamsIpProtocolN = "SDRP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSECUREVMTP    PluginsFirewallServiceObjectListParamsIpProtocolN = "SECURE-VMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSKIP          PluginsFirewallServiceObjectListParamsIpProtocolN = "SKIP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSM            PluginsFirewallServiceObjectListParamsIpProtocolN = "SM"
	PluginsFirewallServiceObjectListParamsIpProtocolNSMP           PluginsFirewallServiceObjectListParamsIpProtocolN = "SMP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSNP           PluginsFirewallServiceObjectListParamsIpProtocolN = "SNP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSPS           PluginsFirewallServiceObjectListParamsIpProtocolN = "SPS"
	PluginsFirewallServiceObjectListParamsIpProtocolNSRP           PluginsFirewallServiceObjectListParamsIpProtocolN = "SRP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSSCOPMCE      PluginsFirewallServiceObjectListParamsIpProtocolN = "SSCOPMCE"
	PluginsFirewallServiceObjectListParamsIpProtocolNSTP           PluginsFirewallServiceObjectListParamsIpProtocolN = "STP"
	PluginsFirewallServiceObjectListParamsIpProtocolNSUNND         PluginsFirewallServiceObjectListParamsIpProtocolN = "SUN-ND"
	PluginsFirewallServiceObjectListParamsIpProtocolNSpriteRPC     PluginsFirewallServiceObjectListParamsIpProtocolN = "Sprite-RPC"
	PluginsFirewallServiceObjectListParamsIpProtocolNTCF           PluginsFirewallServiceObjectListParamsIpProtocolN = "TCF"
	PluginsFirewallServiceObjectListParamsIpProtocolNTCP           PluginsFirewallServiceObjectListParamsIpProtocolN = "TCP"
	PluginsFirewallServiceObjectListParamsIpProtocolNTLSP          PluginsFirewallServiceObjectListParamsIpProtocolN = "TLSP"
	PluginsFirewallServiceObjectListParamsIpProtocolNTP            PluginsFirewallServiceObjectListParamsIpProtocolN = "TP++"
	PluginsFirewallServiceObjectListParamsIpProtocolNTRUNK1        PluginsFirewallServiceObjectListParamsIpProtocolN = "TRUNK-1"
	PluginsFirewallServiceObjectListParamsIpProtocolNTRUNK2        PluginsFirewallServiceObjectListParamsIpProtocolN = "TRUNK-2"
	PluginsFirewallServiceObjectListParamsIpProtocolNTTP           PluginsFirewallServiceObjectListParamsIpProtocolN = "TTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNUDP           PluginsFirewallServiceObjectListParamsIpProtocolN = "UDP"
	PluginsFirewallServiceObjectListParamsIpProtocolNUDPLite       PluginsFirewallServiceObjectListParamsIpProtocolN = "UDPLite"
	PluginsFirewallServiceObjectListParamsIpProtocolNUTI           PluginsFirewallServiceObjectListParamsIpProtocolN = "UTI"
	PluginsFirewallServiceObjectListParamsIpProtocolNVINES         PluginsFirewallServiceObjectListParamsIpProtocolN = "VINES"
	PluginsFirewallServiceObjectListParamsIpProtocolNVISA          PluginsFirewallServiceObjectListParamsIpProtocolN = "VISA"
	PluginsFirewallServiceObjectListParamsIpProtocolNVMTP          PluginsFirewallServiceObjectListParamsIpProtocolN = "VMTP"
	PluginsFirewallServiceObjectListParamsIpProtocolNWBEXPAK       PluginsFirewallServiceObjectListParamsIpProtocolN = "WB-EXPAK"
	PluginsFirewallServiceObjectListParamsIpProtocolNWBMON         PluginsFirewallServiceObjectListParamsIpProtocolN = "WB-MON"
	PluginsFirewallServiceObjectListParamsIpProtocolNWESP          PluginsFirewallServiceObjectListParamsIpProtocolN = "WESP"
	PluginsFirewallServiceObjectListParamsIpProtocolNWSN           PluginsFirewallServiceObjectListParamsIpProtocolN = "WSN"
	PluginsFirewallServiceObjectListParamsIpProtocolNXNET          PluginsFirewallServiceObjectListParamsIpProtocolN = "XNET"
	PluginsFirewallServiceObjectListParamsIpProtocolNXNSIDP        PluginsFirewallServiceObjectListParamsIpProtocolN = "XNS-IDP"
	PluginsFirewallServiceObjectListParamsIpProtocolNXTP           PluginsFirewallServiceObjectListParamsIpProtocolN = "XTP"
)

// Defines values for SwaggerJsonRetrieveParamsLang.
const (
	SwaggerJsonRetrieveParamsLangAf     SwaggerJsonRetrieveParamsLang = "af"
	SwaggerJsonRetrieveParamsLangAr     SwaggerJsonRetrieveParamsLang = "ar"
	SwaggerJsonRetrieveParamsLangArDz   SwaggerJsonRetrieveParamsLang = "ar-dz"
	SwaggerJsonRetrieveParamsLangAst    SwaggerJsonRetrieveParamsLang = "ast"
	SwaggerJsonRetrieveParamsLangAz     SwaggerJsonRetrieveParamsLang = "az"
	SwaggerJsonRetrieveParamsLangBe     SwaggerJsonRetrieveParamsLang = "be"
	SwaggerJsonRetrieveParamsLangBg     SwaggerJsonRetrieveParamsLang = "bg"
	SwaggerJsonRetrieveParamsLangBn     SwaggerJsonRetrieveParamsLang = "bn"
	SwaggerJsonRetrieveParamsLangBr     SwaggerJsonRetrieveParamsLang = "br"
	SwaggerJsonRetrieveParamsLangBs     SwaggerJsonRetrieveParamsLang = "bs"
	SwaggerJsonRetrieveParamsLangCa     SwaggerJsonRetrieveParamsLang = "ca"
	SwaggerJsonRetrieveParamsLangCs     SwaggerJsonRetrieveParamsLang = "cs"
	SwaggerJsonRetrieveParamsLangCy     SwaggerJsonRetrieveParamsLang = "cy"
	SwaggerJsonRetrieveParamsLangDa     SwaggerJsonRetrieveParamsLang = "da"
	SwaggerJsonRetrieveParamsLangDe     SwaggerJsonRetrieveParamsLang = "de"
	SwaggerJsonRetrieveParamsLangDsb    SwaggerJsonRetrieveParamsLang = "dsb"
	SwaggerJsonRetrieveParamsLangEl     SwaggerJsonRetrieveParamsLang = "el"
	SwaggerJsonRetrieveParamsLangEn     SwaggerJsonRetrieveParamsLang = "en"
	SwaggerJsonRetrieveParamsLangEnAu   SwaggerJsonRetrieveParamsLang = "en-au"
	SwaggerJsonRetrieveParamsLangEnGb   SwaggerJsonRetrieveParamsLang = "en-gb"
	SwaggerJsonRetrieveParamsLangEo     SwaggerJsonRetrieveParamsLang = "eo"
	SwaggerJsonRetrieveParamsLangEs     SwaggerJsonRetrieveParamsLang = "es"
	SwaggerJsonRetrieveParamsLangEsAr   SwaggerJsonRetrieveParamsLang = "es-ar"
	SwaggerJsonRetrieveParamsLangEsCo   SwaggerJsonRetrieveParamsLang = "es-co"
	SwaggerJsonRetrieveParamsLangEsMx   SwaggerJsonRetrieveParamsLang = "es-mx"
	SwaggerJsonRetrieveParamsLangEsNi   SwaggerJsonRetrieveParamsLang = "es-ni"
	SwaggerJsonRetrieveParamsLangEsVe   SwaggerJsonRetrieveParamsLang = "es-ve"
	SwaggerJsonRetrieveParamsLangEt     SwaggerJsonRetrieveParamsLang = "et"
	SwaggerJsonRetrieveParamsLangEu     SwaggerJsonRetrieveParamsLang = "eu"
	SwaggerJsonRetrieveParamsLangFa     SwaggerJsonRetrieveParamsLang = "fa"
	SwaggerJsonRetrieveParamsLangFi     SwaggerJsonRetrieveParamsLang = "fi"
	SwaggerJsonRetrieveParamsLangFr     SwaggerJsonRetrieveParamsLang = "fr"
	SwaggerJsonRetrieveParamsLangFy     SwaggerJsonRetrieveParamsLang = "fy"
	SwaggerJsonRetrieveParamsLangGa     SwaggerJsonRetrieveParamsLang = "ga"
	SwaggerJsonRetrieveParamsLangGd     SwaggerJsonRetrieveParamsLang = "gd"
	SwaggerJsonRetrieveParamsLangGl     SwaggerJsonRetrieveParamsLang = "gl"
	SwaggerJsonRetrieveParamsLangHe     SwaggerJsonRetrieveParamsLang = "he"
	SwaggerJsonRetrieveParamsLangHi     SwaggerJsonRetrieveParamsLang = "hi"
	SwaggerJsonRetrieveParamsLangHr     SwaggerJsonRetrieveParamsLang = "hr"
	SwaggerJsonRetrieveParamsLangHsb    SwaggerJsonRetrieveParamsLang = "hsb"
	SwaggerJsonRetrieveParamsLangHu     SwaggerJsonRetrieveParamsLang = "hu"
	SwaggerJsonRetrieveParamsLangHy     SwaggerJsonRetrieveParamsLang = "hy"
	SwaggerJsonRetrieveParamsLangIa     SwaggerJsonRetrieveParamsLang = "ia"
	SwaggerJsonRetrieveParamsLangId     SwaggerJsonRetrieveParamsLang = "id"
	SwaggerJsonRetrieveParamsLangIg     SwaggerJsonRetrieveParamsLang = "ig"
	SwaggerJsonRetrieveParamsLangIo     SwaggerJsonRetrieveParamsLang = "io"
	SwaggerJsonRetrieveParamsLangIs     SwaggerJsonRetrieveParamsLang = "is"
	SwaggerJsonRetrieveParamsLangIt     SwaggerJsonRetrieveParamsLang = "it"
	SwaggerJsonRetrieveParamsLangJa     SwaggerJsonRetrieveParamsLang = "ja"
	SwaggerJsonRetrieveParamsLangKa     SwaggerJsonRetrieveParamsLang = "ka"
	SwaggerJsonRetrieveParamsLangKab    SwaggerJsonRetrieveParamsLang = "kab"
	SwaggerJsonRetrieveParamsLangKk     SwaggerJsonRetrieveParamsLang = "kk"
	SwaggerJsonRetrieveParamsLangKm     SwaggerJsonRetrieveParamsLang = "km"
	SwaggerJsonRetrieveParamsLangKn     SwaggerJsonRetrieveParamsLang = "kn"
	SwaggerJsonRetrieveParamsLangKo     SwaggerJsonRetrieveParamsLang = "ko"
	SwaggerJsonRetrieveParamsLangKy     SwaggerJsonRetrieveParamsLang = "ky"
	SwaggerJsonRetrieveParamsLangLb     SwaggerJsonRetrieveParamsLang = "lb"
	SwaggerJsonRetrieveParamsLangLt     SwaggerJsonRetrieveParamsLang = "lt"
	SwaggerJsonRetrieveParamsLangLv     SwaggerJsonRetrieveParamsLang = "lv"
	SwaggerJsonRetrieveParamsLangMk     SwaggerJsonRetrieveParamsLang = "mk"
	SwaggerJsonRetrieveParamsLangMl     SwaggerJsonRetrieveParamsLang = "ml"
	SwaggerJsonRetrieveParamsLangMn     SwaggerJsonRetrieveParamsLang = "mn"
	SwaggerJsonRetrieveParamsLangMr     SwaggerJsonRetrieveParamsLang = "mr"
	SwaggerJsonRetrieveParamsLangMy     SwaggerJsonRetrieveParamsLang = "my"
	SwaggerJsonRetrieveParamsLangNb     SwaggerJsonRetrieveParamsLang = "nb"
	SwaggerJsonRetrieveParamsLangNe     SwaggerJsonRetrieveParamsLang = "ne"
	SwaggerJsonRetrieveParamsLangNl     SwaggerJsonRetrieveParamsLang = "nl"
	SwaggerJsonRetrieveParamsLangNn     SwaggerJsonRetrieveParamsLang = "nn"
	SwaggerJsonRetrieveParamsLangOs     SwaggerJsonRetrieveParamsLang = "os"
	SwaggerJsonRetrieveParamsLangPa     SwaggerJsonRetrieveParamsLang = "pa"
	SwaggerJsonRetrieveParamsLangPl     SwaggerJsonRetrieveParamsLang = "pl"
	SwaggerJsonRetrieveParamsLangPt     SwaggerJsonRetrieveParamsLang = "pt"
	SwaggerJsonRetrieveParamsLangPtBr   SwaggerJsonRetrieveParamsLang = "pt-br"
	SwaggerJsonRetrieveParamsLangRo     SwaggerJsonRetrieveParamsLang = "ro"
	SwaggerJsonRetrieveParamsLangRu     SwaggerJsonRetrieveParamsLang = "ru"
	SwaggerJsonRetrieveParamsLangSk     SwaggerJsonRetrieveParamsLang = "sk"
	SwaggerJsonRetrieveParamsLangSl     SwaggerJsonRetrieveParamsLang = "sl"
	SwaggerJsonRetrieveParamsLangSq     SwaggerJsonRetrieveParamsLang = "sq"
	SwaggerJsonRetrieveParamsLangSr     SwaggerJsonRetrieveParamsLang = "sr"
	SwaggerJsonRetrieveParamsLangSrLatn SwaggerJsonRetrieveParamsLang = "sr-latn"
	SwaggerJsonRetrieveParamsLangSv     SwaggerJsonRetrieveParamsLang = "sv"
	SwaggerJsonRetrieveParamsLangSw     SwaggerJsonRetrieveParamsLang = "sw"
	SwaggerJsonRetrieveParamsLangTa     SwaggerJsonRetrieveParamsLang = "ta"
	SwaggerJsonRetrieveParamsLangTe     SwaggerJsonRetrieveParamsLang = "te"
	SwaggerJsonRetrieveParamsLangTg     SwaggerJsonRetrieveParamsLang = "tg"
	SwaggerJsonRetrieveParamsLangTh     SwaggerJsonRetrieveParamsLang = "th"
	SwaggerJsonRetrieveParamsLangTk     SwaggerJsonRetrieveParamsLang = "tk"
	SwaggerJsonRetrieveParamsLangTr     SwaggerJsonRetrieveParamsLang = "tr"
	SwaggerJsonRetrieveParamsLangTt     SwaggerJsonRetrieveParamsLang = "tt"
	SwaggerJsonRetrieveParamsLangUdm    SwaggerJsonRetrieveParamsLang = "udm"
	SwaggerJsonRetrieveParamsLangUk     SwaggerJsonRetrieveParamsLang = "uk"
	SwaggerJsonRetrieveParamsLangUr     SwaggerJsonRetrieveParamsLang = "ur"
	SwaggerJsonRetrieveParamsLangUz     SwaggerJsonRetrieveParamsLang = "uz"
	SwaggerJsonRetrieveParamsLangVi     SwaggerJsonRetrieveParamsLang = "vi"
	SwaggerJsonRetrieveParamsLangZhHans SwaggerJsonRetrieveParamsLang = "zh-hans"
	SwaggerJsonRetrieveParamsLangZhHant SwaggerJsonRetrieveParamsLang = "zh-hant"
)

// Defines values for SwaggerYamlRetrieveParamsLang.
const (
	SwaggerYamlRetrieveParamsLangAf     SwaggerYamlRetrieveParamsLang = "af"
	SwaggerYamlRetrieveParamsLangAr     SwaggerYamlRetrieveParamsLang = "ar"
	SwaggerYamlRetrieveParamsLangArDz   SwaggerYamlRetrieveParamsLang = "ar-dz"
	SwaggerYamlRetrieveParamsLangAst    SwaggerYamlRetrieveParamsLang = "ast"
	SwaggerYamlRetrieveParamsLangAz     SwaggerYamlRetrieveParamsLang = "az"
	SwaggerYamlRetrieveParamsLangBe     SwaggerYamlRetrieveParamsLang = "be"
	SwaggerYamlRetrieveParamsLangBg     SwaggerYamlRetrieveParamsLang = "bg"
	SwaggerYamlRetrieveParamsLangBn     SwaggerYamlRetrieveParamsLang = "bn"
	SwaggerYamlRetrieveParamsLangBr     SwaggerYamlRetrieveParamsLang = "br"
	SwaggerYamlRetrieveParamsLangBs     SwaggerYamlRetrieveParamsLang = "bs"
	SwaggerYamlRetrieveParamsLangCa     SwaggerYamlRetrieveParamsLang = "ca"
	SwaggerYamlRetrieveParamsLangCs     SwaggerYamlRetrieveParamsLang = "cs"
	SwaggerYamlRetrieveParamsLangCy     SwaggerYamlRetrieveParamsLang = "cy"
	SwaggerYamlRetrieveParamsLangDa     SwaggerYamlRetrieveParamsLang = "da"
	SwaggerYamlRetrieveParamsLangDe     SwaggerYamlRetrieveParamsLang = "de"
	SwaggerYamlRetrieveParamsLangDsb    SwaggerYamlRetrieveParamsLang = "dsb"
	SwaggerYamlRetrieveParamsLangEl     SwaggerYamlRetrieveParamsLang = "el"
	SwaggerYamlRetrieveParamsLangEn     SwaggerYamlRetrieveParamsLang = "en"
	SwaggerYamlRetrieveParamsLangEnAu   SwaggerYamlRetrieveParamsLang = "en-au"
	SwaggerYamlRetrieveParamsLangEnGb   SwaggerYamlRetrieveParamsLang = "en-gb"
	SwaggerYamlRetrieveParamsLangEo     SwaggerYamlRetrieveParamsLang = "eo"
	SwaggerYamlRetrieveParamsLangEs     SwaggerYamlRetrieveParamsLang = "es"
	SwaggerYamlRetrieveParamsLangEsAr   SwaggerYamlRetrieveParamsLang = "es-ar"
	SwaggerYamlRetrieveParamsLangEsCo   SwaggerYamlRetrieveParamsLang = "es-co"
	SwaggerYamlRetrieveParamsLangEsMx   SwaggerYamlRetrieveParamsLang = "es-mx"
	SwaggerYamlRetrieveParamsLangEsNi   SwaggerYamlRetrieveParamsLang = "es-ni"
	SwaggerYamlRetrieveParamsLangEsVe   SwaggerYamlRetrieveParamsLang = "es-ve"
	SwaggerYamlRetrieveParamsLangEt     SwaggerYamlRetrieveParamsLang = "et"
	SwaggerYamlRetrieveParamsLangEu     SwaggerYamlRetrieveParamsLang = "eu"
	SwaggerYamlRetrieveParamsLangFa     SwaggerYamlRetrieveParamsLang = "fa"
	SwaggerYamlRetrieveParamsLangFi     SwaggerYamlRetrieveParamsLang = "fi"
	SwaggerYamlRetrieveParamsLangFr     SwaggerYamlRetrieveParamsLang = "fr"
	SwaggerYamlRetrieveParamsLangFy     SwaggerYamlRetrieveParamsLang = "fy"
	SwaggerYamlRetrieveParamsLangGa     SwaggerYamlRetrieveParamsLang = "ga"
	SwaggerYamlRetrieveParamsLangGd     SwaggerYamlRetrieveParamsLang = "gd"
	SwaggerYamlRetrieveParamsLangGl     SwaggerYamlRetrieveParamsLang = "gl"
	SwaggerYamlRetrieveParamsLangHe     SwaggerYamlRetrieveParamsLang = "he"
	SwaggerYamlRetrieveParamsLangHi     SwaggerYamlRetrieveParamsLang = "hi"
	SwaggerYamlRetrieveParamsLangHr     SwaggerYamlRetrieveParamsLang = "hr"
	SwaggerYamlRetrieveParamsLangHsb    SwaggerYamlRetrieveParamsLang = "hsb"
	SwaggerYamlRetrieveParamsLangHu     SwaggerYamlRetrieveParamsLang = "hu"
	SwaggerYamlRetrieveParamsLangHy     SwaggerYamlRetrieveParamsLang = "hy"
	SwaggerYamlRetrieveParamsLangIa     SwaggerYamlRetrieveParamsLang = "ia"
	SwaggerYamlRetrieveParamsLangId     SwaggerYamlRetrieveParamsLang = "id"
	SwaggerYamlRetrieveParamsLangIg     SwaggerYamlRetrieveParamsLang = "ig"
	SwaggerYamlRetrieveParamsLangIo     SwaggerYamlRetrieveParamsLang = "io"
	SwaggerYamlRetrieveParamsLangIs     SwaggerYamlRetrieveParamsLang = "is"
	SwaggerYamlRetrieveParamsLangIt     SwaggerYamlRetrieveParamsLang = "it"
	SwaggerYamlRetrieveParamsLangJa     SwaggerYamlRetrieveParamsLang = "ja"
	SwaggerYamlRetrieveParamsLangKa     SwaggerYamlRetrieveParamsLang = "ka"
	SwaggerYamlRetrieveParamsLangKab    SwaggerYamlRetrieveParamsLang = "kab"
	SwaggerYamlRetrieveParamsLangKk     SwaggerYamlRetrieveParamsLang = "kk"
	SwaggerYamlRetrieveParamsLangKm     SwaggerYamlRetrieveParamsLang = "km"
	SwaggerYamlRetrieveParamsLangKn     SwaggerYamlRetrieveParamsLang = "kn"
	SwaggerYamlRetrieveParamsLangKo     SwaggerYamlRetrieveParamsLang = "ko"
	SwaggerYamlRetrieveParamsLangKy     SwaggerYamlRetrieveParamsLang = "ky"
	SwaggerYamlRetrieveParamsLangLb     SwaggerYamlRetrieveParamsLang = "lb"
	SwaggerYamlRetrieveParamsLangLt     SwaggerYamlRetrieveParamsLang = "lt"
	SwaggerYamlRetrieveParamsLangLv     SwaggerYamlRetrieveParamsLang = "lv"
	SwaggerYamlRetrieveParamsLangMk     SwaggerYamlRetrieveParamsLang = "mk"
	SwaggerYamlRetrieveParamsLangMl     SwaggerYamlRetrieveParamsLang = "ml"
	SwaggerYamlRetrieveParamsLangMn     SwaggerYamlRetrieveParamsLang = "mn"
	SwaggerYamlRetrieveParamsLangMr     SwaggerYamlRetrieveParamsLang = "mr"
	SwaggerYamlRetrieveParamsLangMy     SwaggerYamlRetrieveParamsLang = "my"
	SwaggerYamlRetrieveParamsLangNb     SwaggerYamlRetrieveParamsLang = "nb"
	SwaggerYamlRetrieveParamsLangNe     SwaggerYamlRetrieveParamsLang = "ne"
	SwaggerYamlRetrieveParamsLangNl     SwaggerYamlRetrieveParamsLang = "nl"
	SwaggerYamlRetrieveParamsLangNn     SwaggerYamlRetrieveParamsLang = "nn"
	SwaggerYamlRetrieveParamsLangOs     SwaggerYamlRetrieveParamsLang = "os"
	SwaggerYamlRetrieveParamsLangPa     SwaggerYamlRetrieveParamsLang = "pa"
	SwaggerYamlRetrieveParamsLangPl     SwaggerYamlRetrieveParamsLang = "pl"
	SwaggerYamlRetrieveParamsLangPt     SwaggerYamlRetrieveParamsLang = "pt"
	SwaggerYamlRetrieveParamsLangPtBr   SwaggerYamlRetrieveParamsLang = "pt-br"
	SwaggerYamlRetrieveParamsLangRo     SwaggerYamlRetrieveParamsLang = "ro"
	SwaggerYamlRetrieveParamsLangRu     SwaggerYamlRetrieveParamsLang = "ru"
	SwaggerYamlRetrieveParamsLangSk     SwaggerYamlRetrieveParamsLang = "sk"
	SwaggerYamlRetrieveParamsLangSl     SwaggerYamlRetrieveParamsLang = "sl"
	SwaggerYamlRetrieveParamsLangSq     SwaggerYamlRetrieveParamsLang = "sq"
	SwaggerYamlRetrieveParamsLangSr     SwaggerYamlRetrieveParamsLang = "sr"
	SwaggerYamlRetrieveParamsLangSrLatn SwaggerYamlRetrieveParamsLang = "sr-latn"
	SwaggerYamlRetrieveParamsLangSv     SwaggerYamlRetrieveParamsLang = "sv"
	SwaggerYamlRetrieveParamsLangSw     SwaggerYamlRetrieveParamsLang = "sw"
	SwaggerYamlRetrieveParamsLangTa     SwaggerYamlRetrieveParamsLang = "ta"
	SwaggerYamlRetrieveParamsLangTe     SwaggerYamlRetrieveParamsLang = "te"
	SwaggerYamlRetrieveParamsLangTg     SwaggerYamlRetrieveParamsLang = "tg"
	SwaggerYamlRetrieveParamsLangTh     SwaggerYamlRetrieveParamsLang = "th"
	SwaggerYamlRetrieveParamsLangTk     SwaggerYamlRetrieveParamsLang = "tk"
	SwaggerYamlRetrieveParamsLangTr     SwaggerYamlRetrieveParamsLang = "tr"
	SwaggerYamlRetrieveParamsLangTt     SwaggerYamlRetrieveParamsLang = "tt"
	SwaggerYamlRetrieveParamsLangUdm    SwaggerYamlRetrieveParamsLang = "udm"
	SwaggerYamlRetrieveParamsLangUk     SwaggerYamlRetrieveParamsLang = "uk"
	SwaggerYamlRetrieveParamsLangUr     SwaggerYamlRetrieveParamsLang = "ur"
	SwaggerYamlRetrieveParamsLangUz     SwaggerYamlRetrieveParamsLang = "uz"
	SwaggerYamlRetrieveParamsLangVi     SwaggerYamlRetrieveParamsLang = "vi"
	SwaggerYamlRetrieveParamsLangZhHans SwaggerYamlRetrieveParamsLang = "zh-hans"
	SwaggerYamlRetrieveParamsLangZhHant SwaggerYamlRetrieveParamsLang = "zh-hant"
)

// Defines values for SwaggerRetrieveParamsFormat.
const (
	SwaggerRetrieveParamsFormatJson SwaggerRetrieveParamsFormat = "json"
	SwaggerRetrieveParamsFormatYaml SwaggerRetrieveParamsFormat = "yaml"
)

// Defines values for SwaggerRetrieveParamsLang.
const (
	Af     SwaggerRetrieveParamsLang = "af"
	Ar     SwaggerRetrieveParamsLang = "ar"
	ArDz   SwaggerRetrieveParamsLang = "ar-dz"
	Ast    SwaggerRetrieveParamsLang = "ast"
	Az     SwaggerRetrieveParamsLang = "az"
	Be     SwaggerRetrieveParamsLang = "be"
	Bg     SwaggerRetrieveParamsLang = "bg"
	Bn     SwaggerRetrieveParamsLang = "bn"
	Br     SwaggerRetrieveParamsLang = "br"
	Bs     SwaggerRetrieveParamsLang = "bs"
	Ca     SwaggerRetrieveParamsLang = "ca"
	Cs     SwaggerRetrieveParamsLang = "cs"
	Cy     SwaggerRetrieveParamsLang = "cy"
	Da     SwaggerRetrieveParamsLang = "da"
	De     SwaggerRetrieveParamsLang = "de"
	Dsb    SwaggerRetrieveParamsLang = "dsb"
	El     SwaggerRetrieveParamsLang = "el"
	En     SwaggerRetrieveParamsLang = "en"
	EnAu   SwaggerRetrieveParamsLang = "en-au"
	EnGb   SwaggerRetrieveParamsLang = "en-gb"
	Eo     SwaggerRetrieveParamsLang = "eo"
	Es     SwaggerRetrieveParamsLang = "es"
	EsAr   SwaggerRetrieveParamsLang = "es-ar"
	EsCo   SwaggerRetrieveParamsLang = "es-co"
	EsMx   SwaggerRetrieveParamsLang = "es-mx"
	EsNi   SwaggerRetrieveParamsLang = "es-ni"
	EsVe   SwaggerRetrieveParamsLang = "es-ve"
	Et     SwaggerRetrieveParamsLang = "et"
	Eu     SwaggerRetrieveParamsLang = "eu"
	Fa     SwaggerRetrieveParamsLang = "fa"
	Fi     SwaggerRetrieveParamsLang = "fi"
	Fr     SwaggerRetrieveParamsLang = "fr"
	Fy     SwaggerRetrieveParamsLang = "fy"
	Ga     SwaggerRetrieveParamsLang = "ga"
	Gd     SwaggerRetrieveParamsLang = "gd"
	Gl     SwaggerRetrieveParamsLang = "gl"
	He     SwaggerRetrieveParamsLang = "he"
	Hi     SwaggerRetrieveParamsLang = "hi"
	Hr     SwaggerRetrieveParamsLang = "hr"
	Hsb    SwaggerRetrieveParamsLang = "hsb"
	Hu     SwaggerRetrieveParamsLang = "hu"
	Hy     SwaggerRetrieveParamsLang = "hy"
	Ia     SwaggerRetrieveParamsLang = "ia"
	Id     SwaggerRetrieveParamsLang = "id"
	Ig     SwaggerRetrieveParamsLang = "ig"
	Io     SwaggerRetrieveParamsLang = "io"
	Is     SwaggerRetrieveParamsLang = "is"
	It     SwaggerRetrieveParamsLang = "it"
	Ja     SwaggerRetrieveParamsLang = "ja"
	Ka     SwaggerRetrieveParamsLang = "ka"
	Kab    SwaggerRetrieveParamsLang = "kab"
	Kk     SwaggerRetrieveParamsLang = "kk"
	Km     SwaggerRetrieveParamsLang = "km"
	Kn     SwaggerRetrieveParamsLang = "kn"
	Ko     SwaggerRetrieveParamsLang = "ko"
	Ky     SwaggerRetrieveParamsLang = "ky"
	Lb     SwaggerRetrieveParamsLang = "lb"
	Lt     SwaggerRetrieveParamsLang = "lt"
	Lv     SwaggerRetrieveParamsLang = "lv"
	Mk     SwaggerRetrieveParamsLang = "mk"
	Ml     SwaggerRetrieveParamsLang = "ml"
	Mn     SwaggerRetrieveParamsLang = "mn"
	Mr     SwaggerRetrieveParamsLang = "mr"
	My     SwaggerRetrieveParamsLang = "my"
	Nb     SwaggerRetrieveParamsLang = "nb"
	Ne     SwaggerRetrieveParamsLang = "ne"
	Nl     SwaggerRetrieveParamsLang = "nl"
	Nn     SwaggerRetrieveParamsLang = "nn"
	Os     SwaggerRetrieveParamsLang = "os"
	Pa     SwaggerRetrieveParamsLang = "pa"
	Pl     SwaggerRetrieveParamsLang = "pl"
	Pt     SwaggerRetrieveParamsLang = "pt"
	PtBr   SwaggerRetrieveParamsLang = "pt-br"
	Ro     SwaggerRetrieveParamsLang = "ro"
	Ru     SwaggerRetrieveParamsLang = "ru"
	Sk     SwaggerRetrieveParamsLang = "sk"
	Sl     SwaggerRetrieveParamsLang = "sl"
	Sq     SwaggerRetrieveParamsLang = "sq"
	Sr     SwaggerRetrieveParamsLang = "sr"
	SrLatn SwaggerRetrieveParamsLang = "sr-latn"
	Sv     SwaggerRetrieveParamsLang = "sv"
	Sw     SwaggerRetrieveParamsLang = "sw"
	Ta     SwaggerRetrieveParamsLang = "ta"
	Te     SwaggerRetrieveParamsLang = "te"
	Tg     SwaggerRetrieveParamsLang = "tg"
	Th     SwaggerRetrieveParamsLang = "th"
	Tk     SwaggerRetrieveParamsLang = "tk"
	Tr     SwaggerRetrieveParamsLang = "tr"
	Tt     SwaggerRetrieveParamsLang = "tt"
	Udm    SwaggerRetrieveParamsLang = "udm"
	Uk     SwaggerRetrieveParamsLang = "uk"
	Ur     SwaggerRetrieveParamsLang = "ur"
	Uz     SwaggerRetrieveParamsLang = "uz"
	Vi     SwaggerRetrieveParamsLang = "vi"
	ZhHans SwaggerRetrieveParamsLang = "zh-hans"
	ZhHant SwaggerRetrieveParamsLang = "zh-hant"
)

// AccessGrant API serializer for interacting with AccessGrant objects.
type AccessGrant struct {
	// Command Enter <tt>*</tt> to grant access to all commands
	Command string              `json:"command"`
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	GrantType   GrantTypeEnum       `json:"grant_type"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Organization name, channel name, or user name
	Name string `json:"name"`

	// Subcommand Enter <tt>*</tt> to grant access to all subcommands of the given command
	Subcommand string  `json:"subcommand"`
	Url        *string `json:"url,omitempty"`

	// Value Corresponding ID value to grant access to.<br>Enter <tt>*</tt> to grant access to all organizations, channels, or users
	Value string `json:"value"`
}

// AccessGrantRequest API serializer for interacting with AccessGrant objects.
type AccessGrantRequest struct {
	// Command Enter <tt>*</tt> to grant access to all commands
	Command   string        `json:"command"`
	GrantType GrantTypeEnum `json:"grant_type"`

	// Name Organization name, channel name, or user name
	Name string `json:"name"`

	// Subcommand Enter <tt>*</tt> to grant access to all subcommands of the given command
	Subcommand string `json:"subcommand"`

	// Value Corresponding ID value to grant access to.<br>Enter <tt>*</tt> to grant access to all organizations, channels, or users
	Value string `json:"value"`
}

// AccessTypeEnum defines model for AccessTypeEnum.
type AccessTypeEnum string

// ActionEnum defines model for ActionEnum.
type ActionEnum string

// AddressFamily REST API serializer for AddressFamily records.
type AddressFamily struct {
	AfiSafi      AfiSafiEnum             `json:"afi_safi"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	ExportPolicy *string             `json:"export_policy,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	ImportPolicy *string             `json:"import_policy,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`

	// RoutingInstance Nested/brief serializer for PeerEndpoint.
	RoutingInstance NestedRoutingInstance `json:"routing_instance"`
	Url             *string               `json:"url,omitempty"`
	Vrf             *NestedVRF            `json:"vrf"`
}

// AddressObject AddressObject Serializer.
type AddressObject struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Fqdn Nested serializer for FQDN.
	Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
	Id   *openapi_types.UUID `json:"id,omitempty"`

	// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

	// IpRange Nested serializer for IPRange.
	IpRange     *NestedIPRange `json:"ip_range,omitempty"`
	LastUpdated *time.Time     `json:"last_updated"`

	// Name Name descriptor for an address object type.
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`

	// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Prefix *NestedPrefix `json:"prefix,omitempty"`
	Status *struct {
		Label *AddressObjectStatusLabel `json:"label,omitempty"`
		Value *AddressObjectStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// AddressObjectStatusLabel defines model for AddressObject.Status.Label.
type AddressObjectStatusLabel string

// AddressObjectStatusValue defines model for AddressObject.Status.Value.
type AddressObjectStatusValue string

// AddressObjectGroup AddressObjectGroup Serializer.
type AddressObjectGroup struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	AddressObjects  *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *AddressObjectGroupAddressObjectsStatusLabel `json:"label,omitempty"`
			Value *AddressObjectGroupAddressObjectsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"address_objects,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Name descriptor for a group address objects.
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`
	Status   *struct {
		Label *AddressObjectGroupStatusLabel `json:"label,omitempty"`
		Value *AddressObjectGroupStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// AddressObjectGroupAddressObjectsStatusLabel defines model for AddressObjectGroup.AddressObjects.Status.Label.
type AddressObjectGroupAddressObjectsStatusLabel string

// AddressObjectGroupAddressObjectsStatusValue defines model for AddressObjectGroup.AddressObjects.Status.Value.
type AddressObjectGroupAddressObjectsStatusValue string

// AddressObjectGroupStatusLabel defines model for AddressObjectGroup.Status.Label.
type AddressObjectGroupStatusLabel string

// AddressObjectGroupStatusValue defines model for AddressObjectGroup.Status.Value.
type AddressObjectGroupStatusValue string

// AfiSafiEnum defines model for AfiSafiEnum.
type AfiSafiEnum string

// Aggregate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Aggregate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	DateAdded    *openapi_types.Date     `json:"date_added"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Family  *struct {
		Label *AggregateFamilyLabel `json:"label,omitempty"`
		Value *AggregateFamilyValue `json:"value,omitempty"`
	} `json:"family,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Prefix      string              `json:"prefix"`

	// Rir Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rir    NestedRIR             `json:"rir"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
}

// AggregateFamilyLabel defines model for Aggregate.Family.Label.
type AggregateFamilyLabel string

// AggregateFamilyValue defines model for Aggregate.Family.Value.
type AggregateFamilyValue int

// AutonomousSystem REST API serializer for AutonomousSystem records.
type AutonomousSystem struct {
	// Asn 32-bit autonomous system number
	Asn          int64                   `json:"asn"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Provider    *NestedProvider     `json:"provider"`
	Status      struct {
		Label *AutonomousSystemStatusLabel `json:"label,omitempty"`
		Value *AutonomousSystemStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// AutonomousSystemStatusLabel defines model for AutonomousSystem.Status.Label.
type AutonomousSystemStatusLabel string

// AutonomousSystemStatusValue defines model for AutonomousSystem.Status.Value.
type AutonomousSystemStatusValue string

// AvailableIP Representation of an IP address which does not exist in the database.
type AvailableIP struct {
	Address *string    `json:"address,omitempty"`
	Family  *int       `json:"family,omitempty"`
	Vrf     *NestedVRF `json:"vrf,omitempty"`
}

// AvailablePrefix Representation of a prefix which does not exist in the database.
type AvailablePrefix struct {
	Family *int       `json:"family,omitempty"`
	Prefix *string    `json:"prefix,omitempty"`
	Vrf    *NestedVRF `json:"vrf,omitempty"`
}

// BGPRoutingInstance REST API serializer for Peering records.
type BGPRoutingInstance struct {
	AutonomousSystem *NestedAutonomousSystem `json:"autonomous_system"`
	Created          *openapi_types.Date     `json:"created"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Endpoints   *[]NestedPeerEndpoint `json:"endpoints,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	RouterId    *NestedIPAddress      `json:"router_id"`
	Url         *string               `json:"url,omitempty"`
}

// BlankEnum defines model for BlankEnum.
type BlankEnum = interface{}

// BulkOperationIntegerIDRequest As BulkOperationSerializer, but for models such as users.Group that have an integer ID field.
type BulkOperationIntegerIDRequest struct {
	Id int `json:"id"`
}

// BulkOperationRequest Representation of bulk-DELETE request for most models; also used to validate required ID field for bulk-PATCH/PUT.
type BulkOperationRequest struct {
	Id openapi_types.UUID `json:"id"`
}

// BulkWritableAccessGrantRequest API serializer for interacting with AccessGrant objects.
type BulkWritableAccessGrantRequest struct {
	// Command Enter <tt>*</tt> to grant access to all commands
	Command   string             `json:"command"`
	GrantType GrantTypeEnum      `json:"grant_type"`
	Id        openapi_types.UUID `json:"id"`

	// Name Organization name, channel name, or user name
	Name string `json:"name"`

	// Subcommand Enter <tt>*</tt> to grant access to all subcommands of the given command
	Subcommand string `json:"subcommand"`

	// Value Corresponding ID value to grant access to.<br>Enter <tt>*</tt> to grant access to all organizations, channels, or users
	Value string `json:"value"`
}

// BulkWritableAddressFamilyRequest REST API serializer for AddressFamily records.
type BulkWritableAddressFamilyRequest struct {
	AfiSafi      AfiSafiEnum             `json:"afi_safi"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	ExportPolicy *string                 `json:"export_policy,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	ImportPolicy *string                 `json:"import_policy,omitempty"`
	Vrf          *NestedVRFRequest       `json:"vrf"`
}

// BulkWritableAddressObjectGroupRequest AddressObjectGroup Serializer.
type BulkWritableAddressObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	AddressObjects  *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                 `json:"object_type,omitempty"`
				Objects    *[]BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                   `json:"object_type,omitempty"`
				Objects    *[]BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableAddressObjectGroupRequestAddressObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                               `json:"tags,omitempty"`
	} `json:"address_objects,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Name Name descriptor for a group address objects.
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectGroupRequestAddressObjectsStatus defines model for BulkWritableAddressObjectGroupRequest.AddressObjects.Status.
type BulkWritableAddressObjectGroupRequestAddressObjectsStatus string

// BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.relationships.destination.objects.Item.
type BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.relationships.peer.objects.Item.
type BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableAddressObjectGroupRequest.relationships.source.objects.Item.
type BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectRequest AddressObject Serializer.
type BulkWritableAddressObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Fqdn Nested serializer for FQDN.
	Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`
	Id   openapi_types.UUID `json:"id"`

	// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

	// IpRange Nested serializer for IPRange.
	IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

	// Name Name descriptor for an address object type.
	Name string `json:"name"`

	// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item defines model for BulkWritableAddressObjectRequest.relationships.destination.objects.Item.
type BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item defines model for BulkWritableAddressObjectRequest.relationships.peer.objects.Item.
type BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item defines model for BulkWritableAddressObjectRequest.relationships.source.objects.Item.
type BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAggregateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableAggregateRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	DateAdded     *openapi_types.Date     `json:"date_added"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Prefix        string                  `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAggregateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAggregateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableAggregateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Rir Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rir    NestedRIRRequest             `json:"rir"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// BulkWritableAggregateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableAggregateRequest.relationships.destination.objects.Item.
type BulkWritableAggregateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAggregateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableAggregateRequest.relationships.peer.objects.Item.
type BulkWritableAggregateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAggregateRequest_Relationships_Source_Objects_Item defines model for BulkWritableAggregateRequest.relationships.source.objects.Item.
type BulkWritableAggregateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableAutonomousSystemRequest REST API serializer for AutonomousSystem records.
type BulkWritableAutonomousSystemRequest struct {
	// Asn 32-bit autonomous system number
	Asn          int64                        `json:"asn"`
	CustomFields *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description  *string                      `json:"description,omitempty"`
	Id           openapi_types.UUID           `json:"id"`
	Provider     *NestedProviderRequest       `json:"provider"`
	Status       Status2a0Enum                `json:"status"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableBGPRoutingInstanceRequest REST API serializer for Peering records.
type BulkWritableBGPRoutingInstanceRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Description      *string                        `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device   NestedDeviceRequest     `json:"device"`
	Id       openapi_types.UUID      `json:"id"`
	RouterId *NestedIPAddressRequest `json:"router_id"`
}

// BulkWritableCVELCMRequest REST API serializer for CVELCM records.
type BulkWritableCVELCMRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Cvss          *float64                `json:"cvss"`
	CvssV2        *float64                `json:"cvss_v2"`
	CvssV3        *float64                `json:"cvss_v3"`
	Description   *string                 `json:"description"`
	Fix           *string                 `json:"fix"`
	Id            openapi_types.UUID      `json:"id"`
	Link          string                  `json:"link"`
	Name          string                  `json:"name"`
	PublishedDate openapi_types.Date      `json:"published_date"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCVELCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Severity *SeverityEnum                `json:"severity,omitempty"`
	Status   *Status4f5Enum               `json:"status,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableCVELCMRequest.relationships.destination.objects.Item.
type BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableCVELCMRequest.relationships.peer.objects.Item.
type BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCVELCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableCVELCMRequest.relationships.source.objects.Item.
type BulkWritableCVELCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCableRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableCableRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Label         *string                 `json:"label,omitempty"`
	Length        *int                    `json:"length"`
	LengthUnit    *LengthUnitEnum         `json:"length_unit,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCableRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCableRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCableRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status           CableStatusChoices             `json:"status"`
	Tags             *[]TagSerializerFieldRequest   `json:"tags,omitempty"`
	TerminationAId   openapi_types.UUID             `json:"termination_a_id"`
	TerminationAType string                         `json:"termination_a_type"`
	TerminationBId   openapi_types.UUID             `json:"termination_b_id"`
	TerminationBType string                         `json:"termination_b_type"`
	Type             *BulkWritableCableRequest_Type `json:"type,omitempty"`
}

// BulkWritableCableRequest_Relationships_Destination_Objects_Item defines model for BulkWritableCableRequest.relationships.destination.objects.Item.
type BulkWritableCableRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCableRequest_Relationships_Peer_Objects_Item defines model for BulkWritableCableRequest.relationships.peer.objects.Item.
type BulkWritableCableRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCableRequest_Relationships_Source_Objects_Item defines model for BulkWritableCableRequest.relationships.source.objects.Item.
type BulkWritableCableRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCableRequest_Type defines model for BulkWritableCableRequest.Type.
type BulkWritableCableRequest_Type struct {
	union json.RawMessage
}

// BulkWritableCapircaPolicyRequest CapircaPolicy Serializer.
type BulkWritableCapircaPolicyRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	Cfg             *string                      `json:"cfg"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Device          *openapi_types.UUID          `json:"device"`
	Id              openapi_types.UUID           `json:"id"`
	Net             *string                      `json:"net"`
	Pol             *string                      `json:"pol"`
	Svc             *string                      `json:"svc"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableCircuitMaintenanceCircuitImpactRequest Serializer for API.
type BulkWritableCircuitMaintenanceCircuitImpactRequest struct {
	Circuit     openapi_types.UUID                                         `json:"circuit"`
	Id          openapi_types.UUID                                         `json:"id"`
	Impact      *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact `json:"impact"`
	Maintenance openapi_types.UUID                                         `json:"maintenance"`
}

// BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact defines model for BulkWritableCircuitMaintenanceCircuitImpactRequest.Impact.
type BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact struct {
	union json.RawMessage
}

// BulkWritableCircuitMaintenanceRequest Serializer for API.
type BulkWritableCircuitMaintenanceRequest struct {
	Ack         *bool                                         `json:"ack"`
	Description *string                                       `json:"description"`
	EndTime     time.Time                                     `json:"end_time"`
	Id          openapi_types.UUID                            `json:"id"`
	Name        *string                                       `json:"name,omitempty"`
	StartTime   time.Time                                     `json:"start_time"`
	Status      *BulkWritableCircuitMaintenanceRequest_Status `json:"status"`
}

// BulkWritableCircuitMaintenanceRequest_Status defines model for BulkWritableCircuitMaintenanceRequest.Status.
type BulkWritableCircuitMaintenanceRequest_Status struct {
	union json.RawMessage
}

// BulkWritableCircuitRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableCircuitRequest struct {
	Cid          string                  `json:"cid"`
	Comments     *string                 `json:"comments,omitempty"`
	CommitRate   *int                    `json:"commit_rate"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	InstallDate  *openapi_types.Date     `json:"install_date"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider      NestedProviderRequest `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status CircuitStatusChoices         `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type NestedCircuitTypeRequest `json:"type"`
}

// BulkWritableCircuitRequest_Relationships_Destination_Objects_Item defines model for BulkWritableCircuitRequest.relationships.destination.objects.Item.
type BulkWritableCircuitRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitRequest_Relationships_Peer_Objects_Item defines model for BulkWritableCircuitRequest.relationships.peer.objects.Item.
type BulkWritableCircuitRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitRequest_Relationships_Source_Objects_Item defines model for BulkWritableCircuitRequest.relationships.source.objects.Item.
type BulkWritableCircuitRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTerminationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableCircuitTerminationRequest struct {
	// Circuit Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Circuit         NestedCircuitRequest          `json:"circuit"`
	CustomFields    *map[string]interface{}       `json:"custom_fields,omitempty"`
	Description     *string                       `json:"description,omitempty"`
	Id              openapi_types.UUID            `json:"id"`
	Location        *NestedLocationRequest        `json:"location"`
	PortSpeed       *int                          `json:"port_speed"`
	PpInfo          *string                       `json:"pp_info,omitempty"`
	ProviderNetwork *NestedProviderNetworkRequest `json:"provider_network"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site     *NestedSiteRequest `json:"site"`
	TermSide TermSideEnum       `json:"term_side"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item defines model for BulkWritableCircuitTerminationRequest.relationships.destination.objects.Item.
type BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item defines model for BulkWritableCircuitTerminationRequest.relationships.peer.objects.Item.
type BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item defines model for BulkWritableCircuitTerminationRequest.relationships.source.objects.Item.
type BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableCircuitTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item defines model for BulkWritableCircuitTypeRequest.relationships.destination.objects.Item.
type BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item defines model for BulkWritableCircuitTypeRequest.relationships.peer.objects.Item.
type BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item defines model for BulkWritableCircuitTypeRequest.relationships.source.objects.Item.
type BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableClusterGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableClusterGroupRequest.relationships.destination.objects.Item.
type BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableClusterGroupRequest.relationships.peer.objects.Item.
type BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableClusterGroupRequest.relationships.source.objects.Item.
type BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableClusterRequest struct {
	Comments      *string                    `json:"comments,omitempty"`
	CustomFields  *map[string]interface{}    `json:"custom_fields,omitempty"`
	Group         *NestedClusterGroupRequest `json:"group"`
	Id            openapi_types.UUID         `json:"id"`
	Location      *NestedLocationRequest     `json:"location"`
	Name          string                     `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *NestedSiteRequest           `json:"site"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type NestedClusterTypeRequest `json:"type"`
}

// BulkWritableClusterRequest_Relationships_Destination_Objects_Item defines model for BulkWritableClusterRequest.relationships.destination.objects.Item.
type BulkWritableClusterRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterRequest_Relationships_Peer_Objects_Item defines model for BulkWritableClusterRequest.relationships.peer.objects.Item.
type BulkWritableClusterRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterRequest_Relationships_Source_Objects_Item defines model for BulkWritableClusterRequest.relationships.source.objects.Item.
type BulkWritableClusterRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableClusterTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item defines model for BulkWritableClusterTypeRequest.relationships.destination.objects.Item.
type BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item defines model for BulkWritableClusterTypeRequest.relationships.peer.objects.Item.
type BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item defines model for BulkWritableClusterTypeRequest.relationships.source.objects.Item.
type BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCommandTokenRequest API serializer for interacting with CommandToken objects.
type BulkWritableCommandTokenRequest struct {
	// Comment Optional: Enter description of token
	Comment  *string            `json:"comment,omitempty"`
	Id       openapi_types.UUID `json:"id"`
	Platform PlatformEnum       `json:"platform"`

	// Token Token given by chat platform for signing or command validation
	Token string `json:"token"`
}

// BulkWritableComplianceFeatureRequest Serializer for ComplianceFeature object.
type BulkWritableComplianceFeatureRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description     *string                      `json:"description,omitempty"`
	Id              openapi_types.UUID           `json:"id"`
	Name            string                       `json:"name"`
	Slug            string                       `json:"slug"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableComplianceRuleRequest Serializer for ComplianceRule object.
type BulkWritableComplianceRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// ConfigOrdered Whether or not the configuration order matters, such as in ACLs.
	ConfigOrdered bool `json:"config_ordered"`

	// ConfigType Whether the config is in cli or json/structured format.
	ConfigType   *ConfigTypeEnum         `json:"config_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Feature      openapi_types.UUID      `json:"feature"`
	Id           openapi_types.UUID      `json:"id"`

	// MatchConfig The config to match that is matched based on the parent most configuration. e.g. `router bgp` or `ntp`.
	MatchConfig *string                      `json:"match_config"`
	Platform    openapi_types.UUID           `json:"platform"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableComputedFieldRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableComputedFieldRequest struct {
	ContentType string  `json:"content_type"`
	Description *string `json:"description,omitempty"`

	// FallbackValue Fallback value (if any) to be output for the field in the case of a template rendering error.
	FallbackValue *string            `json:"fallback_value,omitempty"`
	Id            openapi_types.UUID `json:"id"`

	// Label Name of the field as displayed to users
	Label string `json:"label"`

	// Slug Internal field name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// Template Jinja2 template code for field value
	Template string `json:"template"`
	Weight   *int   `json:"weight,omitempty"`
}

// BulkWritableConfigComplianceRequest Serializer for ConfigCompliance object.
type BulkWritableConfigComplianceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// Actual Actual Configuration for feature
	Actual        *map[string]interface{} `json:"actual,omitempty"`
	Compliance    *bool                   `json:"compliance"`
	ComplianceInt *int                    `json:"compliance_int"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device The device
	Device openapi_types.UUID `json:"device"`

	// Extra Configuration that should not be on the device.
	Extra *map[string]interface{} `json:"extra,omitempty"`
	Id    openapi_types.UUID      `json:"id"`

	// Intended Intended Configuration for feature
	Intended *map[string]interface{} `json:"intended,omitempty"`

	// Missing Configuration that should be on the device.
	Missing *map[string]interface{}      `json:"missing,omitempty"`
	Ordered *bool                        `json:"ordered,omitempty"`
	Rule    openapi_types.UUID           `json:"rule"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableConfigContextRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableConfigContextRequest struct {
	ClusterGroups *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"cluster_groups,omitempty"`
	Clusters *[]struct {
		Name string `json:"name"`
	} `json:"clusters,omitempty"`
	Data        map[string]interface{} `json:"data"`
	Description *string                `json:"description,omitempty"`
	DeviceTypes *[]struct {
		Model string `json:"model"`
		Slug  string `json:"slug"`
	} `json:"device_types,omitempty"`
	Id        openapi_types.UUID `json:"id"`
	IsActive  *bool              `json:"is_active,omitempty"`
	Locations *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"locations,omitempty"`
	Name             string              `json:"name"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Platforms        *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"platforms,omitempty"`
	Regions *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"regions,omitempty"`
	Roles *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"roles,omitempty"`
	Schema *NestedConfigContextSchemaRequest `json:"schema"`
	Sites  *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"sites,omitempty"`
	Tags         *[]string `json:"tags,omitempty"`
	TenantGroups *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"tenant_groups,omitempty"`
	Tenants *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"tenants,omitempty"`
	Weight *int `json:"weight,omitempty"`
}

// BulkWritableConfigContextSchemaRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableConfigContextSchemaRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DataSchema A JSON Schema document which is used to validate a config context object.
	DataSchema       map[string]interface{} `json:"data_schema"`
	Description      *string                `json:"description,omitempty"`
	Id               openapi_types.UUID     `json:"id"`
	Name             string                 `json:"name"`
	OwnerContentType *string                `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID    `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item defines model for BulkWritableConfigContextSchemaRequest.relationships.destination.objects.Item.
type BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item defines model for BulkWritableConfigContextSchemaRequest.relationships.peer.objects.Item.
type BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item defines model for BulkWritableConfigContextSchemaRequest.relationships.source.objects.Item.
type BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConfigRemoveRequest Serializer for ConfigRemove object.
type BulkWritableConfigRemoveRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            string                  `json:"name"`
	Platform        openapi_types.UUID      `json:"platform"`

	// Regex Regex pattern used to remove a line from the backup configuration.
	Regex string                       `json:"regex"`
	Tags  *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableConfigReplaceRequest Serializer for ConfigReplace object.
type BulkWritableConfigReplaceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            string                  `json:"name"`
	Platform        openapi_types.UUID      `json:"platform"`

	// Regex Regex pattern that will be found and replaced with 'replaced text'.
	Regex string `json:"regex"`

	// Replace Text that will be inserted in place of Regex pattern match.
	Replace string                       `json:"replace"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableConsolePortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableConsolePortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`
	Id     openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *ConsolePortTypeChoices      `json:"type,omitempty"`
}

// BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item defines model for BulkWritableConsolePortRequest.relationships.destination.objects.Item.
type BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item defines model for BulkWritableConsolePortRequest.relationships.peer.objects.Item.
type BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsolePortRequest_Relationships_Source_Objects_Item defines model for BulkWritableConsolePortRequest.relationships.source.objects.Item.
type BulkWritableConsolePortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsolePortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableConsolePortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *ConsolePortTypeChoices `json:"type,omitempty"`
}

// BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableConsolePortTemplateRequest.relationships.destination.objects.Item.
type BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableConsolePortTemplateRequest.relationships.peer.objects.Item.
type BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableConsolePortTemplateRequest.relationships.source.objects.Item.
type BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableConsoleServerPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`
	Id     openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *ConsolePortTypeChoices      `json:"type,omitempty"`
}

// BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item defines model for BulkWritableConsoleServerPortRequest.relationships.destination.objects.Item.
type BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item defines model for BulkWritableConsoleServerPortRequest.relationships.peer.objects.Item.
type BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item defines model for BulkWritableConsoleServerPortRequest.relationships.source.objects.Item.
type BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableConsoleServerPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *ConsolePortTypeChoices `json:"type,omitempty"`
}

// BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableConsoleServerPortTemplateRequest.relationships.destination.objects.Item.
type BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableConsoleServerPortTemplateRequest.relationships.peer.objects.Item.
type BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableConsoleServerPortTemplateRequest.relationships.source.objects.Item.
type BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContactLCMRequest API serializer.
type BulkWritableContactLCMRequest struct {
	Address  *string `json:"address,omitempty"`
	Comments *string `json:"comments,omitempty"`

	// Contract Associated Contract
	Contract      NestedContractLCMRequest `json:"contract"`
	CustomFields  *map[string]interface{}  `json:"custom_fields,omitempty"`
	Email         *openapi_types.Email     `json:"email,omitempty"`
	Id            openapi_types.UUID       `json:"id"`
	Name          *string                  `json:"name"`
	Phone         *string                  `json:"phone,omitempty"`
	Priority      *int                     `json:"priority,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContactLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableContactLCMRequest.relationships.destination.objects.Item.
type BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableContactLCMRequest.relationships.peer.objects.Item.
type BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContactLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableContactLCMRequest.relationships.source.objects.Item.
type BulkWritableContactLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContractLCMRequest API serializer.
type BulkWritableContractLCMRequest struct {
	ContractType *string                 `json:"contract_type"`
	Cost         *string                 `json:"cost"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	End          *openapi_types.Date     `json:"end"`
	Id           openapi_types.UUID      `json:"id"`
	Name         string                  `json:"name"`

	// Provider Vendor
	Provider      NestedProviderLCMRequest `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableContractLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Start        *openapi_types.Date          `json:"start"`
	SupportLevel *string                      `json:"support_level"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableContractLCMRequest.relationships.destination.objects.Item.
type BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableContractLCMRequest.relationships.peer.objects.Item.
type BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableContractLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableContractLCMRequest.relationships.source.objects.Item.
type BulkWritableContractLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableCustomFieldChoiceRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableCustomFieldChoiceRequest struct {
	// Field Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Field NestedCustomFieldRequest `json:"field"`
	Id    openapi_types.UUID       `json:"id"`
	Value string                   `json:"value"`

	// Weight Higher weights appear later in the list
	Weight *int `json:"weight,omitempty"`
}

// BulkWritableCustomLinkRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableCustomLinkRequest struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *ButtonClassEnum `json:"button_class,omitempty"`
	ContentType string           `json:"content_type"`

	// GroupName Links with the same group will appear as a dropdown menu
	GroupName *string            `json:"group_name,omitempty"`
	Id        openapi_types.UUID `json:"id"`
	Name      string             `json:"name"`

	// NewWindow Force link to open in a new window
	NewWindow bool `json:"new_window"`

	// TargetUrl Jinja2 template code for link URL. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>.
	TargetUrl string `json:"target_url"`

	// Text Jinja2 template code for link text. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>. Links which render as empty text will not be displayed.
	Text   string `json:"text"`
	Weight *int   `json:"weight,omitempty"`
}

// BulkWritableDeviceBayRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceBayRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device          NestedDeviceRequest  `json:"device"`
	Id              openapi_types.UUID   `json:"id"`
	InstalledDevice *NestedDeviceRequest `json:"installed_device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceBayRequest.relationships.destination.objects.Item.
type BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceBayRequest.relationships.peer.objects.Item.
type BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceBayRequest.relationships.source.objects.Item.
type BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceBayTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceBayTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
}

// BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceBayTemplateRequest.relationships.destination.objects.Item.
type BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceBayTemplateRequest.relationships.peer.objects.Item.
type BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceBayTemplateRequest.relationships.source.objects.Item.
type BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRedundancyGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceRedundancyGroupRequest struct {
	Comments         *string                 `json:"comments,omitempty"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	FailoverStrategy FailoverStrategyEnum    `json:"failover_strategy"`
	Id               openapi_types.UUID      `json:"id"`
	Name             string                  `json:"name"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *openapi_types.UUID          `json:"secrets_group"`
	Slug         *string                      `json:"slug,omitempty"`
	Status       LocationStatusChoices        `json:"status"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceRedundancyGroupRequest.relationships.destination.objects.Item.
type BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceRedundancyGroupRequest.relationships.peer.objects.Item.
type BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceRedundancyGroupRequest.relationships.source.objects.Item.
type BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// VmRole Virtual machines may be assigned to this role
	VmRole *bool `json:"vm_role,omitempty"`
}

// BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceRoleRequest.relationships.destination.objects.Item.
type BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceRoleRequest.relationships.peer.objects.Item.
type BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceRoleRequest.relationships.source.objects.Item.
type BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceTypeRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	FrontImage   *openapi_types.File     `json:"front_image,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsFullDepth Device consumes both front and rear rack faces
	IsFullDepth *bool `json:"is_full_depth,omitempty"`

	// Manufacturer Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Manufacturer NestedManufacturerRequest `json:"manufacturer"`
	Model        string                    `json:"model"`

	// PartNumber Discrete part number (optional)
	PartNumber    *string             `json:"part_number,omitempty"`
	RearImage     *openapi_types.File `json:"rear_image,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug          *string                      `json:"slug,omitempty"`
	SubdeviceRole *SubdeviceRoleEnum           `json:"subdevice_role,omitempty"`
	Tags          *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UHeight       *int                         `json:"u_height,omitempty"`
}

// BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceTypeRequest.relationships.destination.objects.Item.
type BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceTypeRequest.relationships.peer.objects.Item.
type BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceTypeRequest.relationships.source.objects.Item.
type BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDeviceWithConfigContextRequest struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                             `json:"asset_tag"`
	Cluster               *NestedClusterRequest               `json:"cluster"`
	Comments              *string                             `json:"comments,omitempty"`
	CustomFields          *map[string]interface{}             `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *NestedDeviceRedundancyGroupRequest `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int `json:"device_redundancy_group_priority"`

	// DeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceRole NestedDeviceRoleRequest `json:"device_role"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType         NestedDeviceTypeRequest           `json:"device_type"`
	Face               *FaceEnum                         `json:"face,omitempty"`
	Id                 openapi_types.UUID                `json:"id"`
	LocalContextData   *map[string]interface{}           `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchemaRequest `json:"local_context_schema"`
	Location           *NestedLocationRequest            `json:"location"`
	Name               *string                           `json:"name"`
	Platform           *NestedPlatformRequest            `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position      *int                    `json:"position"`
	PrimaryIp4    *NestedIPAddressRequest `json:"primary_ip4"`
	PrimaryIp6    *NestedIPAddressRequest `json:"primary_ip6"`
	Rack          *NestedRackRequest      `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *NestedSecretsGroupRequest `json:"secrets_group"`
	Serial       *string                    `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site           NestedSiteRequest            `json:"site"`
	Status         DeviceStatusChoices          `json:"status"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant         *NestedTenantRequest         `json:"tenant"`
	VcPosition     *int                         `json:"vc_position"`
	VcPriority     *int                         `json:"vc_priority"`
	VirtualChassis *NestedVirtualChassisRequest `json:"virtual_chassis"`
}

// BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDeviceWithConfigContextRequest.relationships.destination.objects.Item.
type BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDeviceWithConfigContextRequest.relationships.peer.objects.Item.
type BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item defines model for BulkWritableDeviceWithConfigContextRequest.relationships.source.objects.Item.
type BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDynamicGroupMembershipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableDynamicGroupMembershipRequest struct {
	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group    NestedDynamicGroupRequest `json:"group"`
	Id       openapi_types.UUID        `json:"id"`
	Operator OperatorEnum              `json:"operator"`

	// ParentGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ParentGroup NestedDynamicGroupRequest `json:"parent_group"`
	Weight      int                       `json:"weight"`
}

// BulkWritableDynamicGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableDynamicGroupRequest struct {
	ContentType  string                  `json:"content_type"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Filter A JSON-encoded dictionary of filter parameters for group membership
	Filter map[string]interface{} `json:"filter"`
	Id     openapi_types.UUID     `json:"id"`

	// Name Dynamic Group name
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableDynamicGroupRequest.relationships.destination.objects.Item.
type BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableDynamicGroupRequest.relationships.peer.objects.Item.
type BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableDynamicGroupRequest.relationships.source.objects.Item.
type BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableExportTemplateRequest Extend ValidatedModelSerializer with a `relationships` field.
type BulkWritableExportTemplateRequest struct {
	ContentType string  `json:"content_type"`
	Description *string `json:"description,omitempty"`

	// FileExtension Extension to append to the rendered filename
	FileExtension *string            `json:"file_extension,omitempty"`
	Id            openapi_types.UUID `json:"id"`

	// MimeType Defaults to <code>text/plain</code>
	MimeType         *string             `json:"mime_type,omitempty"`
	Name             string              `json:"name"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TemplateCode The list of objects being exported is passed as a context variable named <code>queryset</code>.
	TemplateCode string `json:"template_code"`
}

// BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableExportTemplateRequest.relationships.destination.objects.Item.
type BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableExportTemplateRequest.relationships.peer.objects.Item.
type BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableExportTemplateRequest.relationships.source.objects.Item.
type BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFQDNRequest FQDN Serializer.
type BulkWritableFQDNRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	IpAddresses     *[]struct {
		Address string `json:"address"`
	} `json:"ip_addresses,omitempty"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFQDNRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFQDNRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFQDNRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableFQDNRequest_Relationships_Destination_Objects_Item defines model for BulkWritableFQDNRequest.relationships.destination.objects.Item.
type BulkWritableFQDNRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFQDNRequest_Relationships_Peer_Objects_Item defines model for BulkWritableFQDNRequest.relationships.peer.objects.Item.
type BulkWritableFQDNRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFQDNRequest_Relationships_Source_Objects_Item defines model for BulkWritableFQDNRequest.relationships.source.objects.Item.
type BulkWritableFQDNRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableFrontPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`
	Id     openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  string  `json:"name"`

	// RearPort NestedRearPortSerializer but with parent device omitted (since front and rear ports must belong to same device)
	RearPort         FrontPortRearPortRequest `json:"rear_port"`
	RearPortPosition *int                     `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type PortTypeChoices              `json:"type"`
}

// BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item defines model for BulkWritableFrontPortRequest.relationships.destination.objects.Item.
type BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item defines model for BulkWritableFrontPortRequest.relationships.peer.objects.Item.
type BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortRequest_Relationships_Source_Objects_Item defines model for BulkWritableFrontPortRequest.relationships.source.objects.Item.
type BulkWritableFrontPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableFrontPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  string  `json:"name"`

	// RearPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	RearPort         NestedRearPortTemplateRequest `json:"rear_port"`
	RearPortPosition *int                          `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type PortTypeChoices `json:"type"`
}

// BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableFrontPortTemplateRequest.relationships.destination.objects.Item.
type BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableFrontPortTemplateRequest.relationships.peer.objects.Item.
type BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableFrontPortTemplateRequest.relationships.source.objects.Item.
type BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableGitRepositoryRequest Git repositories defined as a data source.
type BulkWritableGitRepositoryRequest struct {
	Branch *string `json:"branch,omitempty"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead      *string                                                   `json:"current_head,omitempty"`
	CustomFields     *map[string]interface{}                                   `json:"custom_fields,omitempty"`
	Id               openapi_types.UUID                                        `json:"id"`
	Name             string                                                    `json:"name"`
	ProvidedContents *[]BulkWritableGitRepositoryRequest_ProvidedContents_Item `json:"provided_contents,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    string                     `json:"remote_url"`
	SecretsGroup *NestedSecretsGroupRequest `json:"secrets_group"`
	Slug         *string                    `json:"slug,omitempty"`
	Token        *string                    `json:"token,omitempty"`
	Username     *string                    `json:"username,omitempty"`
}

// BulkWritableGitRepositoryRequest_ProvidedContents_Item defines model for BulkWritableGitRepositoryRequest.provided_contents.Item.
type BulkWritableGitRepositoryRequest_ProvidedContents_Item struct {
	union json.RawMessage
}

// BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item defines model for BulkWritableGitRepositoryRequest.relationships.destination.objects.Item.
type BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item defines model for BulkWritableGitRepositoryRequest.relationships.peer.objects.Item.
type BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item defines model for BulkWritableGitRepositoryRequest.relationships.source.objects.Item.
type BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableGoldenConfigRequest Serializer for GoldenConfig object.
type BulkWritableGoldenConfigRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupConfig Full backup config for device.
	BackupConfig          *string    `json:"backup_config,omitempty"`
	BackupLastAttemptDate *time.Time `json:"backup_last_attempt_date"`
	BackupLastSuccessDate *time.Time `json:"backup_last_success_date"`

	// ComplianceConfig Full config diff for device.
	ComplianceConfig          *string                 `json:"compliance_config,omitempty"`
	ComplianceLastAttemptDate *time.Time              `json:"compliance_last_attempt_date"`
	ComplianceLastSuccessDate *time.Time              `json:"compliance_last_success_date"`
	CustomFields              *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device device
	Device openapi_types.UUID `json:"device"`
	Id     openapi_types.UUID `json:"id"`

	// IntendedConfig Intended config for the device.
	IntendedConfig          *string                      `json:"intended_config,omitempty"`
	IntendedLastAttemptDate *time.Time                   `json:"intended_last_attempt_date"`
	IntendedLastSuccessDate *time.Time                   `json:"intended_last_success_date"`
	Tags                    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableGoldenConfigSettingRequest Serializer for GoldenConfigSetting object.
type BulkWritableGoldenConfigSettingRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupPathTemplate The Jinja path representation of where the backup file will be found. The variable `obj` is available as the device instance object of a given device, as is the case for all Jinja templates. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	BackupPathTemplate *string             `json:"backup_path_template,omitempty"`
	BackupRepository   *openapi_types.UUID `json:"backup_repository"`

	// BackupTestConnectivity Whether or not to pretest the connectivity of the device by verifying there is a resolvable IP that can connect to port 22.
	BackupTestConnectivity *bool                   `json:"backup_test_connectivity,omitempty"`
	CustomFields           *map[string]interface{} `json:"custom_fields,omitempty"`
	Description            *string                 `json:"description,omitempty"`

	// DynamicGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DynamicGroup *NestedDynamicGroupRequest `json:"dynamic_group,omitempty"`
	Id           openapi_types.UUID         `json:"id"`

	// IntendedPathTemplate The Jinja path representation of where the generated file will be places. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	IntendedPathTemplate *string             `json:"intended_path_template,omitempty"`
	IntendedRepository   *openapi_types.UUID `json:"intended_repository"`

	// JinjaPathTemplate The Jinja path representation of where the Jinja template can be found. e.g. `{{obj.platform.slug}}.j2`
	JinjaPathTemplate *string                      `json:"jinja_path_template,omitempty"`
	JinjaRepository   *openapi_types.UUID          `json:"jinja_repository"`
	Name              string                       `json:"name"`
	Scope             *map[string]interface{}      `json:"scope,omitempty"`
	Slug              string                       `json:"slug"`
	SotAggQuery       *openapi_types.UUID          `json:"sot_agg_query"`
	Tags              *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Weight            *int                         `json:"weight,omitempty"`
}

// BulkWritableGraphQLQueryRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableGraphQLQueryRequest struct {
	Id        openapi_types.UUID      `json:"id"`
	Name      string                  `json:"name"`
	Query     string                  `json:"query"`
	Slug      *string                 `json:"slug,omitempty"`
	Variables *map[string]interface{} `json:"variables"`
}

// BulkWritableGroupRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableGroupRequest struct {
	Id   int    `json:"id"`
	Name string `json:"name"`
}

// BulkWritableHardwareLCMRequest API serializer.
type BulkWritableHardwareLCMRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DeviceType Device Type to attach the Hardware LCM to
	DeviceType           NestedDeviceTypeRequest `json:"device_type"`
	DocumentationUrl     *string                 `json:"documentation_url,omitempty"`
	EndOfSale            *openapi_types.Date     `json:"end_of_sale"`
	EndOfSecurityPatches *openapi_types.Date     `json:"end_of_security_patches"`
	EndOfSupport         *openapi_types.Date     `json:"end_of_support"`
	EndOfSwReleases      *openapi_types.Date     `json:"end_of_sw_releases"`
	Id                   openapi_types.UUID      `json:"id"`
	InventoryItem        *string                 `json:"inventory_item"`
	Relationships        *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate *openapi_types.Date          `json:"release_date"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableHardwareLCMRequest.relationships.destination.objects.Item.
type BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableHardwareLCMRequest.relationships.peer.objects.Item.
type BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableHardwareLCMRequest.relationships.source.objects.Item.
type BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPAddressRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableIPAddressRequest struct {
	Address            string                  `json:"address"`
	AssignedObjectId   *openapi_types.UUID     `json:"assigned_object_id"`
	AssignedObjectType *string                 `json:"assigned_object_type"`
	CustomFields       *map[string]interface{} `json:"custom_fields,omitempty"`
	Description        *string                 `json:"description,omitempty"`

	// DnsName Hostname or FQDN (not case-sensitive)
	DnsName       *string                 `json:"dns_name,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	NatInside     *NestedIPAddressRequest `json:"nat_inside"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPAddressRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *RoleEnum                    `json:"role,omitempty"`
	Status IPAddressStatusChoices       `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vrf    *NestedVRFRequest            `json:"vrf"`
}

// BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item defines model for BulkWritableIPAddressRequest.relationships.destination.objects.Item.
type BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item defines model for BulkWritableIPAddressRequest.relationships.peer.objects.Item.
type BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPAddressRequest_Relationships_Source_Objects_Item defines model for BulkWritableIPAddressRequest.relationships.source.objects.Item.
type BulkWritableIPAddressRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPRangeRequest IPRange Serializer.
type BulkWritableIPRangeRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	EndAddress      string                  `json:"end_address"`
	Id              openapi_types.UUID      `json:"id"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableIPRangeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	StartAddress string                       `json:"start_address"`
	Status       *Status8f7Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Vrf          *openapi_types.UUID          `json:"vrf"`
}

// BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item defines model for BulkWritableIPRangeRequest.relationships.destination.objects.Item.
type BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item defines model for BulkWritableIPRangeRequest.relationships.peer.objects.Item.
type BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableIPRangeRequest_Relationships_Source_Objects_Item defines model for BulkWritableIPRangeRequest.relationships.source.objects.Item.
type BulkWritableIPRangeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableImageAttachmentRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableImageAttachmentRequest struct {
	ContentType string             `json:"content_type"`
	Id          openapi_types.UUID `json:"id"`
	Image       openapi_types.File `json:"image"`
	ImageHeight int                `json:"image_height"`
	ImageWidth  int                `json:"image_width"`
	Name        *string            `json:"name,omitempty"`
	ObjectId    openapi_types.UUID `json:"object_id"`
}

// BulkWritableInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableInterfaceRequest struct {
	Bridge       *NestedInterfaceRequest `json:"bridge"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device  NestedDeviceRequest `json:"device"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label      *string                 `json:"label,omitempty"`
	Lag        *NestedInterfaceRequest `json:"lag"`
	MacAddress *string                 `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly        *bool                   `json:"mgmt_only,omitempty"`
	Mode            *ModeEnum               `json:"mode,omitempty"`
	Mtu             *int                    `json:"mtu"`
	Name            string                  `json:"name"`
	ParentInterface *NestedInterfaceRequest `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      InterfaceStatusChoices `json:"status"`
	TaggedVlans *[]struct {
		Name string `json:"name"`
		Vid  int    `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type         InterfaceTypeChoices         `json:"type"`
	UntaggedVlan *NestedVLANRequest           `json:"untagged_vlan"`
}

// BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item defines model for BulkWritableInterfaceRequest.relationships.destination.objects.Item.
type BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item defines model for BulkWritableInterfaceRequest.relationships.peer.objects.Item.
type BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInterfaceRequest_Relationships_Source_Objects_Item defines model for BulkWritableInterfaceRequest.relationships.source.objects.Item.
type BulkWritableInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInterfaceTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableInterfaceTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	MgmtOnly      *bool   `json:"mgmt_only,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type InterfaceTypeChoices `json:"type"`
}

// BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableInterfaceTemplateRequest.relationships.destination.objects.Item.
type BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableInterfaceTemplateRequest.relationships.peer.objects.Item.
type BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableInterfaceTemplateRequest.relationships.source.objects.Item.
type BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInventoryItemRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableInventoryItemRequest struct {
	// AssetTag A unique tag used to identify this item
	AssetTag     *string                 `json:"asset_tag"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`

	// Discovered This item was automatically discovered
	Discovered *bool              `json:"discovered,omitempty"`
	Id         openapi_types.UUID `json:"id"`

	// Label Physical label
	Label        *string                    `json:"label,omitempty"`
	Manufacturer *NestedManufacturerRequest `json:"manufacturer"`
	Name         string                     `json:"name"`
	Parent       *openapi_types.UUID        `json:"parent"`

	// PartId Manufacturer-assigned part identifier
	PartId        *string `json:"part_id,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Serial *string                      `json:"serial,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item defines model for BulkWritableInventoryItemRequest.relationships.destination.objects.Item.
type BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item defines model for BulkWritableInventoryItemRequest.relationships.peer.objects.Item.
type BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item defines model for BulkWritableInventoryItemRequest.relationships.source.objects.Item.
type BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobHookRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableJobHookRequest struct {
	ContentTypes []string                `json:"content_types"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Job The job that this job hook will initiate
	Job           openapi_types.UUID `json:"job"`
	Name          string             `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobHookRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobHookRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobHookRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TypeCreate Call this job hook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this job hook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this job hook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// BulkWritableJobHookRequest_Relationships_Destination_Objects_Item defines model for BulkWritableJobHookRequest.relationships.destination.objects.Item.
type BulkWritableJobHookRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobHookRequest_Relationships_Peer_Objects_Item defines model for BulkWritableJobHookRequest.relationships.peer.objects.Item.
type BulkWritableJobHookRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobHookRequest_Relationships_Source_Objects_Item defines model for BulkWritableJobHookRequest.relationships.source.objects.Item.
type BulkWritableJobHookRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableJobRequest struct {
	// ApprovalRequired Whether the job requires approval from another user before running
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovalRequiredOverride If set, the configured value will remain even if the underlying Job source code changes
	ApprovalRequiredOverride *bool `json:"approval_required_override,omitempty"`

	// CommitDefault Whether the job defaults to committing changes when run, or defaults to a dry-run
	CommitDefault *bool `json:"commit_default,omitempty"`

	// CommitDefaultOverride If set, the configured value will remain even if the underlying Job source code changes
	CommitDefaultOverride *bool                   `json:"commit_default_override,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`

	// Description Markdown formatting is supported
	Description *string `json:"description,omitempty"`

	// DescriptionOverride If set, the configured description will remain even if the underlying Job source code changes
	DescriptionOverride *bool `json:"description_override,omitempty"`

	// Enabled Whether this job can be executed by users
	Enabled *bool `json:"enabled,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping string `json:"grouping"`

	// GroupingOverride If set, the configured grouping will remain even if the underlying Job source code changes
	GroupingOverride *bool `json:"grouping_override,omitempty"`

	// HasSensitiveVariables Whether this job contains sensitive variables
	HasSensitiveVariables *bool `json:"has_sensitive_variables,omitempty"`

	// HasSensitiveVariablesOverride If set, the configured value will remain even if the underlying Job source code changes
	HasSensitiveVariablesOverride *bool `json:"has_sensitive_variables_override,omitempty"`

	// Hidden Whether the job defaults to not being shown in the UI
	Hidden *bool `json:"hidden,omitempty"`

	// HiddenOverride If set, the configured value will remain even if the underlying Job source code changes
	HiddenOverride *bool              `json:"hidden_override,omitempty"`
	Id             openapi_types.UUID `json:"id"`

	// Name Human-readable name of this job
	Name string `json:"name"`

	// NameOverride If set, the configured name will remain even if the underlying Job source code changes
	NameOverride *bool `json:"name_override,omitempty"`

	// ReadOnly Whether the job is prevented from making lasting changes to the database
	ReadOnly *bool `json:"read_only,omitempty"`

	// ReadOnlyOverride If set, the configured value will remain even if the underlying Job source code changes
	ReadOnlyOverride *bool `json:"read_only_override,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableJobRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SoftTimeLimit Maximum runtime in seconds before the job will receive a <code>SoftTimeLimitExceeded</code> exception.<br>Set to 0 to use Nautobot system default
	SoftTimeLimit *float64 `json:"soft_time_limit,omitempty"`

	// SoftTimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	SoftTimeLimitOverride *bool                        `json:"soft_time_limit_override,omitempty"`
	Tags                  *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// TaskQueues Comma separated list of task queues that this job can run on. A blank list will use the default queue
	TaskQueues *map[string]interface{} `json:"task_queues,omitempty"`

	// TaskQueuesOverride If set, the configured value will remain even if the underlying Job source code changes
	TaskQueuesOverride *bool `json:"task_queues_override,omitempty"`

	// TimeLimit Maximum runtime in seconds before the job will be forcibly terminated.<br>Set to 0 to use Nautobot system default
	TimeLimit *float64 `json:"time_limit,omitempty"`

	// TimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	TimeLimitOverride *bool `json:"time_limit_override,omitempty"`
}

// BulkWritableJobRequest_Relationships_Destination_Objects_Item defines model for BulkWritableJobRequest.relationships.destination.objects.Item.
type BulkWritableJobRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobRequest_Relationships_Peer_Objects_Item defines model for BulkWritableJobRequest.relationships.peer.objects.Item.
type BulkWritableJobRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableJobRequest_Relationships_Source_Objects_Item defines model for BulkWritableJobRequest.relationships.source.objects.Item.
type BulkWritableJobRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableLocationRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// LocationType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	LocationType  NestedLocationTypeRequest `json:"location_type"`
	Name          string                    `json:"name"`
	Parent        *NestedLocationRequest    `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *NestedSiteRequest           `json:"site"`
	Slug   *string                      `json:"slug,omitempty"`
	Status LocationStatusChoices        `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// BulkWritableLocationRequest_Relationships_Destination_Objects_Item defines model for BulkWritableLocationRequest.relationships.destination.objects.Item.
type BulkWritableLocationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationRequest_Relationships_Peer_Objects_Item defines model for BulkWritableLocationRequest.relationships.peer.objects.Item.
type BulkWritableLocationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationRequest_Relationships_Source_Objects_Item defines model for BulkWritableLocationRequest.relationships.source.objects.Item.
type BulkWritableLocationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableLocationTypeRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         string                  `json:"name"`

	// Nestable Allow Locations of this type to be parents/children of other Locations of this same type
	Nestable      *bool                      `json:"nestable,omitempty"`
	Parent        *NestedLocationTypeRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item defines model for BulkWritableLocationTypeRequest.relationships.destination.objects.Item.
type BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item defines model for BulkWritableLocationTypeRequest.relationships.peer.objects.Item.
type BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item defines model for BulkWritableLocationTypeRequest.relationships.source.objects.Item.
type BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableManufacturerRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableManufacturerRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableManufacturerRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item defines model for BulkWritableManufacturerRequest.relationships.destination.objects.Item.
type BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item defines model for BulkWritableManufacturerRequest.relationships.peer.objects.Item.
type BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableManufacturerRequest_Relationships_Source_Objects_Item defines model for BulkWritableManufacturerRequest.relationships.source.objects.Item.
type BulkWritableManufacturerRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableMinMaxValidationRuleRequest Serializer for `MinMaxValidationRule` objects.
type BulkWritableMinMaxValidationRuleRequest struct {
	ContentType string `json:"content_type"`
	Enabled     *bool  `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage *string            `json:"error_message"`
	Field        string             `json:"field"`
	Id           openapi_types.UUID `json:"id"`

	// Max When set, apply a maximum value contraint to the value of the model field.
	Max *float64 `json:"max"`

	// Min When set, apply a minimum value contraint to the value of the model field.
	Min  *float64 `json:"min"`
	Name string   `json:"name"`
	Slug string   `json:"slug"`
}

// BulkWritableNATPolicyRequest NATPolicy Serializer.
type BulkWritableNATPolicyRequest struct {
	CustomFieldData       *map[string]interface{}                  `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]NATPolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]NATPolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}                  `json:"custom_fields,omitempty"`
	Description           *string                                  `json:"description,omitempty"`
	Id                    openapi_types.UUID                       `json:"id"`
	Name                  string                                   `json:"name"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRequest.relationships.destination.objects.Item.
type BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRequest.relationships.peer.objects.Item.
type BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRequest.relationships.source.objects.Item.
type BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest PolicyRule Serializer.
type BulkWritableNATPolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone                  *ZoneRequest       `json:"destination_zone,omitempty"`
	Id                               openapi_types.UUID `json:"id"`
	Index                            *int               `json:"index"`
	Log                              *bool              `json:"log,omitempty"`
	Name                             string             `json:"name"`
	OriginalDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                             `json:"label,omitempty"`
					ObjectType *string                                                                                                             `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                          `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                            `json:"tags,omitempty"`
	} `json:"original_destination_address_groups,omitempty"`
	OriginalDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                                 `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                        `json:"tags,omitempty"`
	} `json:"original_destination_addresses,omitempty"`
	OriginalDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                             `json:"label,omitempty"`
					ObjectType *string                                                                                                             `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                          `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                            `json:"tags,omitempty"`
	} `json:"original_destination_service_groups,omitempty"`
	OriginalDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                       `json:"tags,omitempty"`
	} `json:"original_destination_services,omitempty"`
	OriginalSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                          `json:"label,omitempty"`
					ObjectType *string                                                                                                          `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                     `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                       `json:"tags,omitempty"`
	} `json:"original_source_address_groups,omitempty"`
	OriginalSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                       `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                   `json:"tags,omitempty"`
	} `json:"original_source_addresses,omitempty"`
	OriginalSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                          `json:"label,omitempty"`
					ObjectType *string                                                                                                          `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                     `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                       `json:"tags,omitempty"`
	} `json:"original_source_service_groups,omitempty"`
	OriginalSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                    `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                      `json:"label,omitempty"`
				ObjectType *string                                                                                      `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                  `json:"tags,omitempty"`
	} `json:"original_source_services,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Remark    *bool   `json:"remark,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone                         *ZoneRequest                 `json:"source_zone,omitempty"`
	Status                             *Status8f7Enum               `json:"status,omitempty"`
	Tags                               *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	TranslatedDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                            `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                              `json:"tags,omitempty"`
	} `json:"translated_destination_address_groups,omitempty"`
	TranslatedDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                                   `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                          `json:"tags,omitempty"`
	} `json:"translated_destination_addresses,omitempty"`
	TranslatedDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                            `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                              `json:"tags,omitempty"`
	} `json:"translated_destination_service_groups,omitempty"`
	TranslatedDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                         `json:"tags,omitempty"`
	} `json:"translated_destination_services,omitempty"`
	TranslatedSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                          `json:"label,omitempty"`
					ObjectType *string                                                                                                          `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                            `json:"label,omitempty"`
					ObjectType *string                                                                                                            `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                       `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                         `json:"tags,omitempty"`
	} `json:"translated_source_address_groups,omitempty"`
	TranslatedSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                       `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                     `json:"tags,omitempty"`
	} `json:"translated_source_addresses,omitempty"`
	TranslatedSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                          `json:"label,omitempty"`
					ObjectType *string                                                                                                          `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                            `json:"label,omitempty"`
					ObjectType *string                                                                                                            `json:"object_type,omitempty"`
					Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                       `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                         `json:"tags,omitempty"`
	} `json:"translated_source_service_groups,omitempty"`
	TranslatedSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                      `json:"label,omitempty"`
				ObjectType *string                                                                                      `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                    `json:"tags,omitempty"`
	} `json:"translated_source_services,omitempty"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus string

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus string

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus string

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol string

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus string

// BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus string

// BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol string

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Status.
type BulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus string

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus string

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus string

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus string

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol string

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus string

// BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus string

// BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol string

// BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus defines model for BulkWritableNATPolicyRuleRequest.OriginalSourceServices.Status.
type BulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus string

// BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.relationships.destination.objects.Item.
type BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.relationships.peer.objects.Item.
type BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.relationships.source.objects.Item.
type BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol string

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus string

// BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus string

// BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol string

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Status.
type BulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus string

// BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus string

// BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol string

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Destination.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Peer.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Source.Objects.Item.
type BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus defines model for BulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Status.
type BulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus string

// BulkWritableNoteRequest This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type BulkWritableNoteRequest struct {
	AssignedObjectId   openapi_types.UUID `json:"assigned_object_id"`
	AssignedObjectType string             `json:"assigned_object_type"`
	Id                 openapi_types.UUID `json:"id"`
	Note               string             `json:"note"`
	Slug               *string            `json:"slug,omitempty"`
}

// BulkWritableObjectPermissionRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableObjectPermissionRequest struct {
	// Actions The list of actions granted by this permission
	Actions map[string]interface{} `json:"actions"`

	// Constraints Queryset filter matching the applicable objects of the selected type(s)
	Constraints *map[string]interface{} `json:"constraints"`
	Description *string                 `json:"description,omitempty"`
	Enabled     *bool                   `json:"enabled,omitempty"`
	Groups      *[]struct {
		Name string `json:"name"`
	} `json:"groups,omitempty"`
	Id          openapi_types.UUID `json:"id"`
	Name        string             `json:"name"`
	ObjectTypes []string           `json:"object_types"`
	Users       *[]struct {
		// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
		Username string `json:"username"`
	} `json:"users,omitempty"`
}

// BulkWritablePeerEndpointRequest REST API serializer for PeerEndpoint records.
type BulkWritablePeerEndpointRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Enabled          *bool                          `json:"enabled,omitempty"`
	ExportPolicy     *string                        `json:"export_policy,omitempty"`
	Id               openapi_types.UUID             `json:"id"`
	ImportPolicy     *string                        `json:"import_policy,omitempty"`
	PeerGroup        *NestedPeerGroupRequest        `json:"peer_group"`
	Peering          *NestedPeeringRequest          `json:"peering"`
	Secret           *NestedSecretRequest           `json:"secret"`
	SourceInterface  *NestedInterfaceRequest        `json:"source_interface"`
	SourceIp         *NestedIPAddressRequest        `json:"source_ip"`
	Tags             *[]TagSerializerFieldRequest   `json:"tags,omitempty"`
}

// BulkWritablePeerGroupRequest REST API serializer for PeerGroup records.
type BulkWritablePeerGroupRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest  `json:"autonomous_system"`
	CustomFields     *map[string]interface{}         `json:"custom_fields,omitempty"`
	Description      *string                         `json:"description,omitempty"`
	Enabled          *bool                           `json:"enabled,omitempty"`
	ExportPolicy     *string                         `json:"export_policy,omitempty"`
	Id               openapi_types.UUID              `json:"id"`
	ImportPolicy     *string                         `json:"import_policy,omitempty"`
	Name             string                          `json:"name"`
	Role             *openapi_types.UUID             `json:"role"`
	Secret           *NestedSecretRequest            `json:"secret"`
	SourceInterface  *NestedInterfaceRequest         `json:"source_interface"`
	SourceIp         *NestedIPAddressRequest         `json:"source_ip"`
	Template         *NestedPeerGroupTemplateRequest `json:"template"`
}

// BulkWritablePeerGroupTemplateRequest REST API serializer for PeerGroup records.
type BulkWritablePeerGroupTemplateRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Description      *string                        `json:"description,omitempty"`
	Enabled          *bool                          `json:"enabled,omitempty"`
	ExportPolicy     *string                        `json:"export_policy,omitempty"`
	Id               openapi_types.UUID             `json:"id"`
	ImportPolicy     *string                        `json:"import_policy,omitempty"`
	Name             string                         `json:"name"`
	Role             *openapi_types.UUID            `json:"role"`
	Secret           *NestedSecretRequest           `json:"secret"`
}

// BulkWritablePeeringRequest REST API serializer for Peering records.
type BulkWritablePeeringRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Status       CircuitStatusChoices    `json:"status"`
}

// BulkWritablePeeringRoleRequest REST API serializer for PeeringRole records.
type BulkWritablePeeringRoleRequest struct {
	Color        *string                 `json:"color,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         string                  `json:"name"`
	Slug         *string                 `json:"slug,omitempty"`
}

// BulkWritablePlatformRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePlatformRequest struct {
	CustomFields *map[string]interface{}    `json:"custom_fields,omitempty"`
	Description  *string                    `json:"description,omitempty"`
	Id           openapi_types.UUID         `json:"id"`
	Manufacturer *NestedManufacturerRequest `json:"manufacturer"`
	Name         string                     `json:"name"`

	// NapalmArgs Additional arguments to pass when initiating the NAPALM driver (JSON format)
	NapalmArgs *map[string]interface{} `json:"napalm_args"`

	// NapalmDriver The name of the NAPALM driver to use when interacting with devices
	NapalmDriver  *string `json:"napalm_driver,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePlatformRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePlatformRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePlatformRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritablePlatformRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePlatformRequest.relationships.destination.objects.Item.
type BulkWritablePlatformRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePlatformRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePlatformRequest.relationships.peer.objects.Item.
type BulkWritablePlatformRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePlatformRequest_Relationships_Source_Objects_Item defines model for BulkWritablePlatformRequest.relationships.source.objects.Item.
type BulkWritablePlatformRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRequest Policy Serializer.
type BulkWritablePolicyRequest struct {
	CustomFieldData       *map[string]interface{}               `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]PolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]PolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}               `json:"custom_fields,omitempty"`
	Description           *string                               `json:"description,omitempty"`
	Id                    openapi_types.UUID                    `json:"id"`
	Name                  string                                `json:"name"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// BulkWritablePolicyRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRequest.relationships.destination.objects.Item.
type BulkWritablePolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRequest.relationships.peer.objects.Item.
type BulkWritablePolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRequest_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRequest.relationships.source.objects.Item.
type BulkWritablePolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest PolicyRule Serializer.
type BulkWritablePolicyRuleRequest struct {
	CustomFieldData          *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Action                   ActionEnum              `json:"action"`
	CustomFields             *map[string]interface{} `json:"custom_fields,omitempty"`
	Description              *string                 `json:"description"`
	DestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                         `json:"label,omitempty"`
					ObjectType *string                                                                                                         `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                  `json:"label,omitempty"`
					ObjectType *string                                                                                                  `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                               `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                   `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                 `json:"tags,omitempty"`
	} `json:"destination_address_groups,omitempty"`
	DestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                      `json:"label,omitempty"`
				ObjectType *string                                                                                      `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                               `json:"label,omitempty"`
				ObjectType *string                                                                               `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                 `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                             `json:"tags,omitempty"`
	} `json:"destination_addresses,omitempty"`
	DestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                   `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                         `json:"label,omitempty"`
					ObjectType *string                                                                                                         `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                  `json:"label,omitempty"`
					ObjectType *string                                                                                                  `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                               `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                 `json:"tags,omitempty"`
	} `json:"destination_service_groups,omitempty"`
	DestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritablePolicyRuleRequestDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                            `json:"tags,omitempty"`
	} `json:"destination_services,omitempty"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest       `json:"destination_zone,omitempty"`
	Id              openapi_types.UUID `json:"id"`
	Index           *int               `json:"index"`
	Log             *bool              `json:"log,omitempty"`
	Name            string             `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	RequestId           *string `json:"request_id"`
	SourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                             `json:"label,omitempty"`
					ObjectType *string                                                                                             `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                               `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                          `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                              `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                            `json:"tags,omitempty"`
	} `json:"source_address_groups,omitempty"`
	SourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                 `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                          `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                            `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                        `json:"tags,omitempty"`
	} `json:"source_addresses,omitempty"`
	SourceUserGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status      *BulkWritablePolicyRuleRequestSourceUserGroupsStatus `json:"status,omitempty"`
		Tags        *[]TagSerializerFieldRequest                         `json:"tags,omitempty"`
		UserObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

			// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
			Name          *string `json:"name,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                              `json:"label,omitempty"`
					ObjectType *string                                                                                              `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                       `json:"label,omitempty"`
					ObjectType *string                                                                                       `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                         `json:"label,omitempty"`
					ObjectType *string                                                                                         `json:"object_type,omitempty"`
					Objects    *[]BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                    `json:"tags,omitempty"`

			// Username Signifies the username in identify provider (e.g. john.smith)
			Username string `json:"username"`
		} `json:"user_objects,omitempty"`
	} `json:"source_user_groups,omitempty"`
	SourceUsers *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name          *string `json:"name,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                      `json:"label,omitempty"`
				ObjectType *string                                                                      `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                        `json:"object_type,omitempty"`
				Objects    *[]BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritablePolicyRuleRequestSourceUsersStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                    `json:"tags,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"source_users,omitempty"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Status.
type BulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus string

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus defines model for BulkWritablePolicyRuleRequest.DestinationAddressGroups.Status.
type BulkWritablePolicyRuleRequestDestinationAddressGroupsStatus string

// BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationAddressesStatus defines model for BulkWritablePolicyRuleRequest.DestinationAddresses.Status.
type BulkWritablePolicyRuleRequestDestinationAddressesStatus string

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol string

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Status.
type BulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus string

// BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus defines model for BulkWritablePolicyRuleRequest.DestinationServiceGroups.Status.
type BulkWritablePolicyRuleRequestDestinationServiceGroupsStatus string

// BulkWritablePolicyRuleRequestDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritablePolicyRuleRequestDestinationServicesIpProtocol string

// BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServices.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServices.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.DestinationServices.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestDestinationServicesStatus defines model for BulkWritablePolicyRuleRequest.DestinationServices.Status.
type BulkWritablePolicyRuleRequestDestinationServicesStatus string

// BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.relationships.destination.objects.Item.
type BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.relationships.peer.objects.Item.
type BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.relationships.source.objects.Item.
type BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Status.
type BulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus string

// BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceAddressGroupsStatus defines model for BulkWritablePolicyRuleRequest.SourceAddressGroups.Status.
type BulkWritablePolicyRuleRequestSourceAddressGroupsStatus string

// BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceAddressesStatus defines model for BulkWritablePolicyRuleRequest.SourceAddresses.Status.
type BulkWritablePolicyRuleRequestSourceAddressesStatus string

// BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceUserGroupsStatus defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.Status.
type BulkWritablePolicyRuleRequestSourceUserGroupsStatus string

// BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus defines model for BulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Status.
type BulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus string

// BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUsers.Relationships.Destination.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUsers.Relationships.Peer.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item defines model for BulkWritablePolicyRuleRequest.SourceUsers.Relationships.Source.Objects.Item.
type BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePolicyRuleRequestSourceUsersStatus defines model for BulkWritablePolicyRuleRequest.SourceUsers.Status.
type BulkWritablePolicyRuleRequestSourceUsersStatus string

// BulkWritablePowerFeedRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerFeedRequest struct {
	Amperage     *int                    `json:"amperage,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// MaxUtilization Maximum permissible draw (percentage)
	MaxUtilization *int       `json:"max_utilization,omitempty"`
	Name           string     `json:"name"`
	Phase          *PhaseEnum `json:"phase,omitempty"`

	// PowerPanel Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPanel    NestedPowerPanelRequest `json:"power_panel"`
	Rack          *NestedRackRequest      `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status  PowerFeedStatusChoices       `json:"status"`
	Supply  *SupplyEnum                  `json:"supply,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type    *PowerFeedTypeChoices        `json:"type,omitempty"`
	Voltage *int                         `json:"voltage,omitempty"`
}

// BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerFeedRequest.relationships.destination.objects.Item.
type BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerFeedRequest.relationships.peer.objects.Item.
type BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerFeedRequest.relationships.source.objects.Item.
type BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerOutletRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device  NestedDeviceRequest `json:"device"`
	FeedLeg *FeedLegEnum        `json:"feed_leg,omitempty"`
	Id      openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  string  `json:"name"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort     *NestedPowerPortRequest `json:"power_port,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PowerOutletTypeChoices      `json:"type,omitempty"`
}

// BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerOutletRequest.relationships.destination.objects.Item.
type BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerOutletRequest.relationships.peer.objects.Item.
type BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerOutletRequest.relationships.source.objects.Item.
type BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerOutletTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	FeedLeg    *FeedLegEnum            `json:"feed_leg,omitempty"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  string  `json:"name"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort     *NestedPowerPortTemplateRequest `json:"power_port,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PowerOutletTypeChoices `json:"type,omitempty"`
}

// BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerOutletTemplateRequest.relationships.destination.objects.Item.
type BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerOutletTemplateRequest.relationships.peer.objects.Item.
type BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerOutletTemplateRequest.relationships.source.objects.Item.
type BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPanelRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerPanelRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          string                  `json:"name"`
	RackGroup     *NestedRackGroupRequest `json:"rack_group"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site NestedSiteRequest            `json:"site"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerPanelRequest.relationships.destination.objects.Item.
type BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerPanelRequest.relationships.peer.objects.Item.
type BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerPanelRequest.relationships.source.objects.Item.
type BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerPortRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`
	Id     openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int   `json:"maximum_draw"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PowerPortTypeChoices        `json:"type,omitempty"`
}

// BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerPortRequest.relationships.destination.objects.Item.
type BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerPortRequest.relationships.peer.objects.Item.
type BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerPortRequest.relationships.source.objects.Item.
type BulkWritablePowerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePowerPortTemplateRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int   `json:"maximum_draw"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PowerPortTypeChoices `json:"type,omitempty"`
}

// BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePowerPortTemplateRequest.relationships.destination.objects.Item.
type BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePowerPortTemplateRequest.relationships.peer.objects.Item.
type BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritablePowerPortTemplateRequest.relationships.source.objects.Item.
type BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePrefixRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritablePrefixRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsPool All IP addresses within this prefix are considered usable
	IsPool        *bool                  `json:"is_pool,omitempty"`
	Location      *NestedLocationRequest `json:"location"`
	Prefix        string                 `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePrefixRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePrefixRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritablePrefixRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRoleRequest           `json:"role"`
	Site   *NestedSiteRequest           `json:"site"`
	Status PrefixStatusChoices          `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vlan   *NestedVLANRequest           `json:"vlan"`
	Vrf    *NestedVRFRequest            `json:"vrf"`
}

// BulkWritablePrefixRequest_Relationships_Destination_Objects_Item defines model for BulkWritablePrefixRequest.relationships.destination.objects.Item.
type BulkWritablePrefixRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePrefixRequest_Relationships_Peer_Objects_Item defines model for BulkWritablePrefixRequest.relationships.peer.objects.Item.
type BulkWritablePrefixRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritablePrefixRequest_Relationships_Source_Objects_Item defines model for BulkWritablePrefixRequest.relationships.source.objects.Item.
type BulkWritablePrefixRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderLCMRequest API serializer.
type BulkWritableProviderLCMRequest struct {
	Comments        *string                 `json:"comments,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Email           *openapi_types.Email    `json:"email,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            string                  `json:"name"`
	Phone           *string                 `json:"phone,omitempty"`
	PhysicalAddress *string                 `json:"physical_address,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableProviderLCMRequest.relationships.destination.objects.Item.
type BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableProviderLCMRequest.relationships.peer.objects.Item.
type BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableProviderLCMRequest.relationships.source.objects.Item.
type BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderNetworkRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableProviderNetworkRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         string                  `json:"name"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider      NestedProviderRequest `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item defines model for BulkWritableProviderNetworkRequest.relationships.destination.objects.Item.
type BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item defines model for BulkWritableProviderNetworkRequest.relationships.peer.objects.Item.
type BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item defines model for BulkWritableProviderNetworkRequest.relationships.source.objects.Item.
type BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableProviderRequest struct {
	Account      *string `json:"account,omitempty"`
	AdminContact *string `json:"admin_contact,omitempty"`

	// Asn 32-bit autonomous system number
	Asn           *int64                  `json:"asn"`
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	NocContact    *string                 `json:"noc_contact,omitempty"`
	PortalUrl     *string                 `json:"portal_url,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableProviderRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableProviderRequest_Relationships_Destination_Objects_Item defines model for BulkWritableProviderRequest.relationships.destination.objects.Item.
type BulkWritableProviderRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderRequest_Relationships_Peer_Objects_Item defines model for BulkWritableProviderRequest.relationships.peer.objects.Item.
type BulkWritableProviderRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableProviderRequest_Relationships_Source_Objects_Item defines model for BulkWritableProviderRequest.relationships.source.objects.Item.
type BulkWritableProviderRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRIRRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRIRRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsPrivate IP space managed by this RIR is considered private
	IsPrivate     *bool  `json:"is_private,omitempty"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRIRRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRIRRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRIRRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableRIRRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRIRRequest.relationships.destination.objects.Item.
type BulkWritableRIRRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRIRRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRIRRequest.relationships.peer.objects.Item.
type BulkWritableRIRRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRIRRequest_Relationships_Source_Objects_Item defines model for BulkWritableRIRRequest.relationships.source.objects.Item.
type BulkWritableRIRRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRackGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          string                  `json:"name"`
	Parent        *NestedRackGroupRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site NestedSiteRequest `json:"site"`
	Slug *string           `json:"slug,omitempty"`
}

// BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRackGroupRequest.relationships.destination.objects.Item.
type BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRackGroupRequest.relationships.peer.objects.Item.
type BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableRackGroupRequest.relationships.source.objects.Item.
type BulkWritableRackGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRackRequest struct {
	// AssetTag A unique tag used to identify this rack
	AssetTag     *string                 `json:"asset_tag"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DescUnits Units are numbered top-to-bottom
	DescUnits *bool `json:"desc_units,omitempty"`

	// FacilityId Locally-assigned identifier
	FacilityId *string                 `json:"facility_id"`
	Group      *NestedRackGroupRequest `json:"group"`
	Id         openapi_types.UUID      `json:"id"`
	Location   *NestedLocationRequest  `json:"location"`
	Name       string                  `json:"name"`

	// OuterDepth Outer dimension of rack (depth)
	OuterDepth *int           `json:"outer_depth"`
	OuterUnit  *OuterUnitEnum `json:"outer_unit,omitempty"`

	// OuterWidth Outer dimension of rack (width)
	OuterWidth    *int `json:"outer_width"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRackRoleRequest `json:"role"`
	Serial *string                `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   NestedSiteRequest            `json:"site"`
	Status RackStatusChoices            `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Type   *RackTypeChoices             `json:"type,omitempty"`

	// UHeight Height in rack units
	UHeight *int       `json:"u_height,omitempty"`
	Width   *WidthEnum `json:"width,omitempty"`
}

// BulkWritableRackRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRackRequest.relationships.destination.objects.Item.
type BulkWritableRackRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRackRequest.relationships.peer.objects.Item.
type BulkWritableRackRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRequest_Relationships_Source_Objects_Item defines model for BulkWritableRackRequest.relationships.source.objects.Item.
type BulkWritableRackRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackReservationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRackReservationRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  string                  `json:"description"`
	Id           openapi_types.UUID      `json:"id"`

	// Rack Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rack          NestedRackRequest `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackReservationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Units  map[string]interface{}       `json:"units"`

	// User Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	User NestedUserRequest `json:"user"`
}

// BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRackReservationRequest.relationships.destination.objects.Item.
type BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRackReservationRequest.relationships.peer.objects.Item.
type BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackReservationRequest_Relationships_Source_Objects_Item defines model for BulkWritableRackReservationRequest.relationships.source.objects.Item.
type BulkWritableRackReservationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRackRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRackRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRackRoleRequest.relationships.destination.objects.Item.
type BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRackRoleRequest.relationships.peer.objects.Item.
type BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRackRoleRequest_Relationships_Source_Objects_Item defines model for BulkWritableRackRoleRequest.relationships.source.objects.Item.
type BulkWritableRackRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRearPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDeviceRequest `json:"device"`
	Id     openapi_types.UUID  `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type PortTypeChoices              `json:"type"`
}

// BulkWritableRearPortRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRearPortRequest.relationships.destination.objects.Item.
type BulkWritableRearPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRearPortRequest.relationships.peer.objects.Item.
type BulkWritableRearPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortRequest_Relationships_Source_Objects_Item defines model for BulkWritableRearPortRequest.relationships.source.objects.Item.
type BulkWritableRearPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRearPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceTypeRequest `json:"device_type"`
	Id         openapi_types.UUID      `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type PortTypeChoices `json:"type"`
}

// BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRearPortTemplateRequest.relationships.destination.objects.Item.
type BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRearPortTemplateRequest.relationships.peer.objects.Item.
type BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item defines model for BulkWritableRearPortTemplateRequest.relationships.source.objects.Item.
type BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRegionRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRegionRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Parent        *NestedRegionRequest    `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRegionRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRegionRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRegionRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableRegionRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRegionRequest.relationships.destination.objects.Item.
type BulkWritableRegionRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRegionRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRegionRequest.relationships.peer.objects.Item.
type BulkWritableRegionRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRegionRequest_Relationships_Source_Objects_Item defines model for BulkWritableRegionRequest.relationships.source.objects.Item.
type BulkWritableRegionRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRegularExpressionValidationRuleRequest Serializer for `RegularExpressionValidationRule` objects.
type BulkWritableRegularExpressionValidationRuleRequest struct {
	ContentType string `json:"content_type"`
	Enabled     *bool  `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage      *string            `json:"error_message"`
	Field             string             `json:"field"`
	Id                openapi_types.UUID `json:"id"`
	Name              string             `json:"name"`
	RegularExpression string             `json:"regular_expression"`
	Slug              string             `json:"slug"`
}

// BulkWritableRelationshipAssociationRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableRelationshipAssociationRequest struct {
	DestinationId   openapi_types.UUID `json:"destination_id"`
	DestinationType string             `json:"destination_type"`
	Id              openapi_types.UUID `json:"id"`

	// Relationship Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Relationship NestedRelationshipRequest `json:"relationship"`
	SourceId     openapi_types.UUID        `json:"source_id"`
	SourceType   string                    `json:"source_type"`
}

// BulkWritableRelationshipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableRelationshipRequest struct {
	Description *string `json:"description,omitempty"`

	// DestinationFilter Filterset filter matching the applicable destination objects of the selected type
	DestinationFilter *map[string]interface{} `json:"destination_filter"`

	// DestinationHidden Hide this relationship on the destination object.
	DestinationHidden *bool `json:"destination_hidden,omitempty"`

	// DestinationLabel Label for related source objects, as displayed on the destination object.
	DestinationLabel *string            `json:"destination_label,omitempty"`
	DestinationType  string             `json:"destination_type"`
	Id               openapi_types.UUID `json:"id"`

	// Name Name of the relationship as displayed to users
	Name string `json:"name"`

	// RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
	RequiredOn *BulkWritableRelationshipRequest_RequiredOn `json:"required_on,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// SourceFilter Filterset filter matching the applicable source objects of the selected type
	SourceFilter *map[string]interface{} `json:"source_filter"`

	// SourceHidden Hide this relationship on the source object.
	SourceHidden *bool `json:"source_hidden,omitempty"`

	// SourceLabel Label for related destination objects, as displayed on the source object.
	SourceLabel *string `json:"source_label,omitempty"`
	SourceType  string  `json:"source_type"`

	// Type Cardinality of this relationship
	Type *RelationshipTypeChoices `json:"type,omitempty"`
}

// BulkWritableRelationshipRequest_RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
type BulkWritableRelationshipRequest_RequiredOn struct {
	union json.RawMessage
}

// BulkWritableRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRoleRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug   *string `json:"slug,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// BulkWritableRoleRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRoleRequest.relationships.destination.objects.Item.
type BulkWritableRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRoleRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRoleRequest.relationships.peer.objects.Item.
type BulkWritableRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRoleRequest_Relationships_Source_Objects_Item defines model for BulkWritableRoleRequest.relationships.source.objects.Item.
type BulkWritableRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRouteTargetRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableRouteTargetRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Name Route target value (formatted in accordance with RFC 4360)
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item defines model for BulkWritableRouteTargetRequest.relationships.destination.objects.Item.
type BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item defines model for BulkWritableRouteTargetRequest.relationships.peer.objects.Item.
type BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item defines model for BulkWritableRouteTargetRequest.relationships.source.objects.Item.
type BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretRequest Serializer for `Secret` objects.
type BulkWritableSecretRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Parameters    *map[string]interface{} `json:"parameters,omitempty"`
	Provider      string                  `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableSecretRequest_Relationships_Destination_Objects_Item defines model for BulkWritableSecretRequest.relationships.destination.objects.Item.
type BulkWritableSecretRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretRequest_Relationships_Peer_Objects_Item defines model for BulkWritableSecretRequest.relationships.peer.objects.Item.
type BulkWritableSecretRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretRequest_Relationships_Source_Objects_Item defines model for BulkWritableSecretRequest.relationships.source.objects.Item.
type BulkWritableSecretRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretsGroupAssociationRequest Serializer for `SecretsGroupAssociation` objects.
type BulkWritableSecretsGroupAssociationRequest struct {
	AccessType AccessTypeEnum `json:"access_type"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group NestedSecretsGroupRequest `json:"group"`
	Id    openapi_types.UUID        `json:"id"`

	// Secret Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Secret     NestedSecretRequest `json:"secret"`
	SecretType SecretTypeEnum      `json:"secret_type"`
}

// BulkWritableSecretsGroupRequest Serializer for `SecretsGroup` objects.
type BulkWritableSecretsGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableSecretsGroupRequest.relationships.destination.objects.Item.
type BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableSecretsGroupRequest.relationships.peer.objects.Item.
type BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableSecretsGroupRequest.relationships.source.objects.Item.
type BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequest ServiceObjectGroup Serializer.
type BulkWritableServiceObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            string                  `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ServiceObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                 `json:"object_type,omitempty"`
				Objects    *[]BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                   `json:"object_type,omitempty"`
				Objects    *[]BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableServiceObjectGroupRequestServiceObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                               `json:"tags,omitempty"`
	} `json:"service_objects,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.relationships.destination.objects.Item.
type BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.relationships.peer.objects.Item.
type BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.relationships.source.objects.Item.
type BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type BulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol string

// BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Destination.Objects.Item.
type BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Peer.Objects.Item.
type BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item defines model for BulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Source.Objects.Item.
type BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectGroupRequestServiceObjectsStatus defines model for BulkWritableServiceObjectGroupRequest.ServiceObjects.Status.
type BulkWritableServiceObjectGroupRequestServiceObjectsStatus string

// BulkWritableServiceObjectRequest ServiceObject Serializer.
type BulkWritableServiceObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol IpProtocolEnum `json:"ip_protocol"`

	// Name Name of the service (e.g. HTTP)
	Name string `json:"name"`

	// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
	Port          *string `json:"port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item defines model for BulkWritableServiceObjectRequest.relationships.destination.objects.Item.
type BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item defines model for BulkWritableServiceObjectRequest.relationships.peer.objects.Item.
type BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item defines model for BulkWritableServiceObjectRequest.relationships.source.objects.Item.
type BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableServiceRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *NestedDeviceRequest    `json:"device"`
	Id           openapi_types.UUID      `json:"id"`
	Ipaddresses  *[]struct {
		Address string `json:"address"`
	} `json:"ipaddresses,omitempty"`
	Name          string        `json:"name"`
	Ports         []int         `json:"ports"`
	Protocol      *ProtocolEnum `json:"protocol,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableServiceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	VirtualMachine *NestedVirtualMachineRequest `json:"virtual_machine"`
}

// BulkWritableServiceRequest_Relationships_Destination_Objects_Item defines model for BulkWritableServiceRequest.relationships.destination.objects.Item.
type BulkWritableServiceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceRequest_Relationships_Peer_Objects_Item defines model for BulkWritableServiceRequest.relationships.peer.objects.Item.
type BulkWritableServiceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableServiceRequest_Relationships_Source_Objects_Item defines model for BulkWritableServiceRequest.relationships.source.objects.Item.
type BulkWritableServiceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSiteRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableSiteRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	Comments     *string                 `json:"comments,omitempty"`
	ContactEmail *openapi_types.Email    `json:"contact_email,omitempty"`
	ContactName  *string                 `json:"contact_name,omitempty"`
	ContactPhone *string                 `json:"contact_phone,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Facility Local facility ID or description
	Facility *string            `json:"facility,omitempty"`
	Id       openapi_types.UUID `json:"id"`

	// Latitude GPS coordinate (latitude)
	Latitude *string `json:"latitude"`

	// Longitude GPS coordinate (longitude)
	Longitude       *string              `json:"longitude"`
	Name            string               `json:"name"`
	PhysicalAddress *string              `json:"physical_address,omitempty"`
	Region          *NestedRegionRequest `json:"region"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSiteRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSiteRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSiteRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ShippingAddress *string                      `json:"shipping_address,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Status          LocationStatusChoices        `json:"status"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant          *NestedTenantRequest         `json:"tenant"`
	TimeZone        *string                      `json:"time_zone"`
}

// BulkWritableSiteRequest_Relationships_Destination_Objects_Item defines model for BulkWritableSiteRequest.relationships.destination.objects.Item.
type BulkWritableSiteRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSiteRequest_Relationships_Peer_Objects_Item defines model for BulkWritableSiteRequest.relationships.peer.objects.Item.
type BulkWritableSiteRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSiteRequest_Relationships_Source_Objects_Item defines model for BulkWritableSiteRequest.relationships.source.objects.Item.
type BulkWritableSiteRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareImageLCMRequest REST API serializer for SoftwareImageLCM records.
type BulkWritableSoftwareImageLCMRequest struct {
	CustomFields      *map[string]interface{} `json:"custom_fields,omitempty"`
	DefaultImage      *bool                   `json:"default_image,omitempty"`
	DeviceTypes       *[]openapi_types.UUID   `json:"device_types,omitempty"`
	DownloadUrl       *string                 `json:"download_url,omitempty"`
	Id                openapi_types.UUID      `json:"id"`
	ImageFileChecksum *string                 `json:"image_file_checksum,omitempty"`
	ImageFileName     string                  `json:"image_file_name"`
	InventoryItems    *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags        *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Relationships     *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software NestedSoftwareLCMRequest     `json:"software"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableSoftwareImageLCMRequest.relationships.destination.objects.Item.
type BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableSoftwareImageLCMRequest.relationships.peer.objects.Item.
type BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableSoftwareImageLCMRequest.relationships.source.objects.Item.
type BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareLCMRequest REST API serializer for SoftwareLCM records.
type BulkWritableSoftwareLCMRequest struct {
	Alias        *string                 `json:"alias"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DevicePlatform Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DevicePlatform   NestedPlatformRequest `json:"device_platform"`
	DocumentationUrl *string               `json:"documentation_url,omitempty"`
	EndOfSupport     *openapi_types.Date   `json:"end_of_support"`
	Id               openapi_types.UUID    `json:"id"`
	LongTermSupport  *bool                 `json:"long_term_support,omitempty"`
	PreRelease       *bool                 `json:"pre_release,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate    *openapi_types.Date `json:"release_date"`
	SoftwareImages *[]struct {
		DefaultImage      *bool                 `json:"default_image,omitempty"`
		DeviceTypes       *[]openapi_types.UUID `json:"device_types,omitempty"`
		DownloadUrl       *string               `json:"download_url,omitempty"`
		ImageFileChecksum *string               `json:"image_file_checksum,omitempty"`
		ImageFileName     string                `json:"image_file_name"`
		InventoryItems    *[]openapi_types.UUID `json:"inventory_items,omitempty"`
		ObjectTags        *[]openapi_types.UUID `json:"object_tags,omitempty"`
	} `json:"software_images,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Version string                       `json:"version"`
}

// BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableSoftwareLCMRequest.relationships.destination.objects.Item.
type BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableSoftwareLCMRequest.relationships.peer.objects.Item.
type BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableSoftwareLCMRequest.relationships.source.objects.Item.
type BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableStatusRequest Serializer for `Status` objects.
type BulkWritableStatusRequest struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  []string                `json:"content_types"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableStatusRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableStatusRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableStatusRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableStatusRequest_Relationships_Destination_Objects_Item defines model for BulkWritableStatusRequest.relationships.destination.objects.Item.
type BulkWritableStatusRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableStatusRequest_Relationships_Peer_Objects_Item defines model for BulkWritableStatusRequest.relationships.peer.objects.Item.
type BulkWritableStatusRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableStatusRequest_Relationships_Source_Objects_Item defines model for BulkWritableStatusRequest.relationships.source.objects.Item.
type BulkWritableStatusRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTagSerializerVersion13Request Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableTagSerializerVersion13Request struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  []string                `json:"content_types"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug string `json:"slug"`
}

// BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item defines model for BulkWritableTagSerializerVersion13Request.relationships.destination.objects.Item.
type BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item defines model for BulkWritableTagSerializerVersion13Request.relationships.peer.objects.Item.
type BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item defines model for BulkWritableTagSerializerVersion13Request.relationships.source.objects.Item.
type BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableTenantGroupRequest struct {
	CustomFields  *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description   *string                   `json:"description,omitempty"`
	Id            openapi_types.UUID        `json:"id"`
	Name          string                    `json:"name"`
	Parent        *NestedTenantGroupRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableTenantGroupRequest.relationships.destination.objects.Item.
type BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableTenantGroupRequest.relationships.peer.objects.Item.
type BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableTenantGroupRequest.relationships.source.objects.Item.
type BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableTenantRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group         *NestedTenantGroupRequest `json:"group,omitempty"`
	Id            openapi_types.UUID        `json:"id"`
	Name          string                    `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]BulkWritableTenantRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableTenantRequest_Relationships_Destination_Objects_Item defines model for BulkWritableTenantRequest.relationships.destination.objects.Item.
type BulkWritableTenantRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantRequest_Relationships_Peer_Objects_Item defines model for BulkWritableTenantRequest.relationships.peer.objects.Item.
type BulkWritableTenantRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTenantRequest_Relationships_Source_Objects_Item defines model for BulkWritableTenantRequest.relationships.source.objects.Item.
type BulkWritableTenantRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableTokenRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableTokenRequest struct {
	Description *string            `json:"description,omitempty"`
	Expires     *time.Time         `json:"expires"`
	Id          openapi_types.UUID `json:"id"`
	Key         *string            `json:"key,omitempty"`

	// WriteEnabled Permit create/update/delete operations using this key
	WriteEnabled *bool `json:"write_enabled,omitempty"`
}

// BulkWritableUserObjectGroupRequest UserObjectGroup Serializer.
type BulkWritableUserObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            string                  `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      *Status8f7Enum               `json:"status,omitempty"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UserObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name          *string `json:"name,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                  `json:"object_type,omitempty"`
				Objects    *[]BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                           `json:"object_type,omitempty"`
				Objects    *[]BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                             `json:"object_type,omitempty"`
				Objects    *[]BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *BulkWritableUserObjectGroupRequestUserObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                         `json:"tags,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"user_objects,omitempty"`
}

// BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableUserObjectGroupRequest.relationships.destination.objects.Item.
type BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableUserObjectGroupRequest.relationships.peer.objects.Item.
type BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableUserObjectGroupRequest.relationships.source.objects.Item.
type BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item defines model for BulkWritableUserObjectGroupRequest.UserObjects.Relationships.Destination.Objects.Item.
type BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item defines model for BulkWritableUserObjectGroupRequest.UserObjects.Relationships.Peer.Objects.Item.
type BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item defines model for BulkWritableUserObjectGroupRequest.UserObjects.Relationships.Source.Objects.Item.
type BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectGroupRequestUserObjectsStatus defines model for BulkWritableUserObjectGroupRequest.UserObjects.Status.
type BulkWritableUserObjectGroupRequestUserObjectsStatus string

// BulkWritableUserObjectRequest UserObject Serializer.
type BulkWritableUserObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Id              openapi_types.UUID      `json:"id"`

	// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]BulkWritableUserObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Username Signifies the username in identify provider (e.g. john.smith)
	Username string `json:"username"`
}

// BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item defines model for BulkWritableUserObjectRequest.relationships.destination.objects.Item.
type BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item defines model for BulkWritableUserObjectRequest.relationships.peer.objects.Item.
type BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserObjectRequest_Relationships_Source_Objects_Item defines model for BulkWritableUserObjectRequest.relationships.source.objects.Item.
type BulkWritableUserObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableUserRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableUserRequest struct {
	DateJoined *time.Time           `json:"date_joined,omitempty"`
	Email      *openapi_types.Email `json:"email,omitempty"`
	FirstName  *string              `json:"first_name,omitempty"`
	Groups     *[]struct {
		Name string `json:"name"`
	} `json:"groups,omitempty"`
	Id openapi_types.UUID `json:"id"`

	// IsActive Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
	IsActive *bool `json:"is_active,omitempty"`

	// IsStaff Designates whether the user can log into this admin site.
	IsStaff  *bool   `json:"is_staff,omitempty"`
	LastName *string `json:"last_name,omitempty"`
	Password *string `json:"password,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username string `json:"username"`
}

// BulkWritableVLANGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVLANGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *NestedSiteRequest `json:"site"`
	Slug *string            `json:"slug,omitempty"`
}

// BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVLANGroupRequest.relationships.destination.objects.Item.
type BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVLANGroupRequest.relationships.peer.objects.Item.
type BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item defines model for BulkWritableVLANGroupRequest.relationships.source.objects.Item.
type BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVLANRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVLANRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *NestedVLANGroupRequest `json:"group"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVLANRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRoleRequest           `json:"role"`
	Site   *NestedSiteRequest           `json:"site"`
	Status VLANStatusChoices            `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vid    int                          `json:"vid"`
}

// BulkWritableVLANRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVLANRequest.relationships.destination.objects.Item.
type BulkWritableVLANRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVLANRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVLANRequest.relationships.peer.objects.Item.
type BulkWritableVLANRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVLANRequest_Relationships_Source_Objects_Item defines model for BulkWritableVLANRequest.relationships.source.objects.Item.
type BulkWritableVLANRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVMInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVMInterfaceRequest struct {
	Bridge          *NestedVMInterfaceRequest `json:"bridge"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Enabled         *bool                     `json:"enabled,omitempty"`
	Id              openapi_types.UUID        `json:"id"`
	MacAddress      *string                   `json:"mac_address"`
	Mode            *ModeEnum                 `json:"mode,omitempty"`
	Mtu             *int                      `json:"mtu"`
	Name            string                    `json:"name"`
	ParentInterface *NestedVMInterfaceRequest `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      InterfaceStatusChoices `json:"status"`
	TaggedVlans *[]struct {
		Name string `json:"name"`
		Vid  int    `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UntaggedVlan *NestedVLANRequest           `json:"untagged_vlan"`

	// VirtualMachine Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	VirtualMachine NestedVirtualMachineRequest `json:"virtual_machine"`
}

// BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVMInterfaceRequest.relationships.destination.objects.Item.
type BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVMInterfaceRequest.relationships.peer.objects.Item.
type BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item defines model for BulkWritableVMInterfaceRequest.relationships.source.objects.Item.
type BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVRFRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVRFRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// EnforceUnique Prevent duplicate prefixes/IP addresses within this VRF
	EnforceUnique *bool `json:"enforce_unique,omitempty"`
	ExportTargets *[]struct {
		// Name Route target value (formatted in accordance with RFC 4360)
		Name string `json:"name"`
	} `json:"export_targets,omitempty"`
	Id            openapi_types.UUID `json:"id"`
	ImportTargets *[]struct {
		// Name Route target value (formatted in accordance with RFC 4360)
		Name string `json:"name"`
	} `json:"import_targets,omitempty"`
	Name string `json:"name"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd            *string `json:"rd"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVRFRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVRFRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVRFRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// BulkWritableVRFRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVRFRequest.relationships.destination.objects.Item.
type BulkWritableVRFRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVRFRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVRFRequest.relationships.peer.objects.Item.
type BulkWritableVRFRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVRFRequest_Relationships_Source_Objects_Item defines model for BulkWritableVRFRequest.relationships.source.objects.Item.
type BulkWritableVRFRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableValidatedSoftwareLCMRequest REST API serializer for ValidatedSoftwareLCM records.
type BulkWritableValidatedSoftwareLCMRequest struct {
	CustomFields   *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRoles    *[]openapi_types.UUID   `json:"device_roles,omitempty"`
	DeviceTypes    *[]openapi_types.UUID   `json:"device_types,omitempty"`
	Devices        *[]openapi_types.UUID   `json:"devices,omitempty"`
	End            *openapi_types.Date     `json:"end"`
	Id             openapi_types.UUID      `json:"id"`
	InventoryItems *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags     *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Preferred      *bool                   `json:"preferred,omitempty"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software NestedSoftwareLCMRequest     `json:"software"`
	Start    openapi_types.Date           `json:"start"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableValidatedSoftwareLCMRequest.relationships.destination.objects.Item.
type BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableValidatedSoftwareLCMRequest.relationships.peer.objects.Item.
type BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableValidatedSoftwareLCMRequest.relationships.source.objects.Item.
type BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualChassisRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVirtualChassisRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Domain        *string                 `json:"domain,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Master        *NestedDeviceRequest    `json:"master"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVirtualChassisRequest.relationships.destination.objects.Item.
type BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVirtualChassisRequest.relationships.peer.objects.Item.
type BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item defines model for BulkWritableVirtualChassisRequest.relationships.source.objects.Item.
type BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualMachineWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type BulkWritableVirtualMachineWithConfigContextRequest struct {
	// Cluster Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Cluster            NestedClusterRequest              `json:"cluster"`
	Comments           *string                           `json:"comments,omitempty"`
	CustomFields       *map[string]interface{}           `json:"custom_fields,omitempty"`
	Disk               *int                              `json:"disk"`
	Id                 openapi_types.UUID                `json:"id"`
	LocalContextData   *map[string]interface{}           `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchemaRequest `json:"local_context_schema"`
	Memory             *int                              `json:"memory"`
	Name               string                            `json:"name"`
	Platform           *NestedPlatformRequest            `json:"platform"`
	PrimaryIp4         *NestedIPAddressRequest           `json:"primary_ip4"`
	PrimaryIp6         *NestedIPAddressRequest           `json:"primary_ip6"`
	Relationships      *struct {
		Destination *struct {
			Label      *string                                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                                 `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedDeviceRoleRequest     `json:"role"`
	Status VirtualMachineStatusChoices  `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vcpus  *int                         `json:"vcpus"`
}

// BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVirtualMachineWithConfigContextRequest.relationships.destination.objects.Item.
type BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVirtualMachineWithConfigContextRequest.relationships.peer.objects.Item.
type BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item defines model for BulkWritableVirtualMachineWithConfigContextRequest.relationships.source.objects.Item.
type BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVulnerabilityLCMRequest REST API serializer for VulnerabilityLCM records.
type BulkWritableVulnerabilityLCMRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status Status4f5Enum                `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item defines model for BulkWritableVulnerabilityLCMRequest.relationships.destination.objects.Item.
type BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item defines model for BulkWritableVulnerabilityLCMRequest.relationships.peer.objects.Item.
type BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item defines model for BulkWritableVulnerabilityLCMRequest.relationships.source.objects.Item.
type BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableWebhookRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type BulkWritableWebhookRequest struct {
	// AdditionalHeaders User-supplied HTTP headers to be sent with the request in addition to the HTTP content type. Headers should be defined in the format <code>Name: Value</code>. Jinja2 template processing is support with the same context as the request body (below).
	AdditionalHeaders *string `json:"additional_headers,omitempty"`

	// BodyTemplate Jinja2 template for a custom request body. If blank, a JSON object representing the change will be included. Available context data includes: <code>event</code>, <code>model</code>, <code>timestamp</code>, <code>username</code>, <code>request_id</code>, and <code>data</code>.
	BodyTemplate *string `json:"body_template,omitempty"`

	// CaFilePath The specific CA certificate file to use for SSL verification. Leave blank to use the system defaults.
	CaFilePath   *string  `json:"ca_file_path"`
	ContentTypes []string `json:"content_types"`

	// HttpContentType The complete list of official content types is available <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.
	HttpContentType *string            `json:"http_content_type,omitempty"`
	HttpMethod      *HttpMethodEnum    `json:"http_method,omitempty"`
	Id              openapi_types.UUID `json:"id"`
	Name            string             `json:"name"`

	// PayloadUrl A POST will be sent to this URL when the webhook is called.
	PayloadUrl string `json:"payload_url"`

	// Secret When provided, the request will include a 'X-Hook-Signature' header containing a HMAC hex digest of the payload body using the secret as the key. The secret is not transmitted in the request.
	Secret *string `json:"secret,omitempty"`

	// SslVerification Enable SSL certificate verification. Disable with caution!
	SslVerification *bool `json:"ssl_verification,omitempty"`

	// TypeCreate Call this webhook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this webhook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this webhook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// BulkWritableZoneRequest Zone Serializer.
type BulkWritableZoneRequest struct {
	CustomFieldData *map[string]interface{}   `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Id              openapi_types.UUID        `json:"id"`
	Interfaces      *[]NestedInterfaceRequest `json:"interfaces,omitempty"`

	// Name Name of the zone (e.g. trust)
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]BulkWritableZoneRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]BulkWritableZoneRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]BulkWritableZoneRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// BulkWritableZoneRequest_Relationships_Destination_Objects_Item defines model for BulkWritableZoneRequest.relationships.destination.objects.Item.
type BulkWritableZoneRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableZoneRequest_Relationships_Peer_Objects_Item defines model for BulkWritableZoneRequest.relationships.peer.objects.Item.
type BulkWritableZoneRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// BulkWritableZoneRequest_Relationships_Source_Objects_Item defines model for BulkWritableZoneRequest.relationships.source.objects.Item.
type BulkWritableZoneRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ButtonClassEnum defines model for ButtonClassEnum.
type ButtonClassEnum string

// CVELCM REST API serializer for CVELCM records.
type CVELCM struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Cvss         *float64                `json:"cvss"`
	CvssV2       *float64                `json:"cvss_v2"`
	CvssV3       *float64                `json:"cvss_v3"`
	Description  *string                 `json:"description"`

	// Display Human friendly display value
	Display       *string             `json:"display,omitempty"`
	Fix           *string             `json:"fix"`
	Id            *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated   *time.Time          `json:"last_updated"`
	Link          string              `json:"link"`
	Name          string              `json:"name"`
	PublishedDate openapi_types.Date  `json:"published_date"`
	Severity      *struct {
		Label *CVELCMSeverityLabel `json:"label,omitempty"`
		Value *CVELCMSeverityValue `json:"value,omitempty"`
	} `json:"severity,omitempty"`
	Status *struct {
		Label *string `json:"label,omitempty"`
		Value *string `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// CVELCMSeverityLabel defines model for CVELCM.Severity.Label.
type CVELCMSeverityLabel string

// CVELCMSeverityValue defines model for CVELCM.Severity.Value.
type CVELCMSeverityValue string

// Cable Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Cable struct {
	Color        *string                 `json:"color,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Label       *string             `json:"label,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Length      *int                `json:"length"`
	LengthUnit  *struct {
		Label *CableLengthUnitLabel `json:"label,omitempty"`
		Value *CableLengthUnitValue `json:"value,omitempty"`
	} `json:"length_unit,omitempty"`
	NotesUrl *string `json:"notes_url,omitempty"`
	Status   struct {
		Label *CableStatusLabel `json:"label,omitempty"`
		Value *CableStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags             *[]TagSerializerField   `json:"tags,omitempty"`
	TerminationA     *map[string]interface{} `json:"termination_a"`
	TerminationAId   openapi_types.UUID      `json:"termination_a_id"`
	TerminationAType string                  `json:"termination_a_type"`
	TerminationB     *map[string]interface{} `json:"termination_b"`
	TerminationBId   openapi_types.UUID      `json:"termination_b_id"`
	TerminationBType string                  `json:"termination_b_type"`
	Type             *Cable_Type             `json:"type,omitempty"`
	Url              *string                 `json:"url,omitempty"`
}

// CableLengthUnitLabel defines model for Cable.LengthUnit.Label.
type CableLengthUnitLabel string

// CableLengthUnitValue defines model for Cable.LengthUnit.Value.
type CableLengthUnitValue string

// CableStatusLabel defines model for Cable.Status.Label.
type CableStatusLabel string

// CableStatusValue defines model for Cable.Status.Value.
type CableStatusValue string

// Cable_Type defines model for Cable.Type.
type Cable_Type struct {
	union json.RawMessage
}

// CableStatusChoices defines model for CableStatusChoices.
type CableStatusChoices string

// CableTypeChoices defines model for CableTypeChoices.
type CableTypeChoices string

// CapircaPolicy CapircaPolicy Serializer.
type CapircaPolicy struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Cfg             *string                 `json:"cfg"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Device          *openapi_types.UUID     `json:"device"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Net         *string               `json:"net"`
	Pol         *string               `json:"pol"`
	Svc         *string               `json:"svc"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// CapircaPolicyRequest CapircaPolicy Serializer.
type CapircaPolicyRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	Cfg             *string                      `json:"cfg"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Device          *openapi_types.UUID          `json:"device"`
	Net             *string                      `json:"net"`
	Pol             *string                      `json:"pol"`
	Svc             *string                      `json:"svc"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// Circuit Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Circuit struct {
	Cid          string                  `json:"cid"`
	Comments     *string                 `json:"comments,omitempty"`
	CommitRate   *int                    `json:"commit_rate"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	InstallDate *openapi_types.Date `json:"install_date"`
	LastUpdated *time.Time          `json:"last_updated"`
	NotesUrl    *string             `json:"notes_url,omitempty"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider NestedProvider `json:"provider"`
	Status   struct {
		Label *CircuitStatusLabel `json:"label,omitempty"`
		Value *CircuitStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags         *[]TagSerializerField      `json:"tags,omitempty"`
	Tenant       *NestedTenant              `json:"tenant"`
	TerminationA *CircuitCircuitTermination `json:"termination_a,omitempty"`
	TerminationZ *CircuitCircuitTermination `json:"termination_z,omitempty"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type NestedCircuitType `json:"type"`
	Url  *string           `json:"url,omitempty"`
}

// CircuitStatusLabel defines model for Circuit.Status.Label.
type CircuitStatusLabel string

// CircuitStatusValue defines model for Circuit.Status.Value.
type CircuitStatusValue string

// CircuitCircuitTermination Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type CircuitCircuitTermination struct {
	// ConnectedEndpoint Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ConnectedEndpoint NestedInterface     `json:"connected_endpoint"`
	Created           *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Location    *NestedLocation     `json:"location"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	PortSpeed   *int                `json:"port_speed"`

	// ProviderNetwork Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ProviderNetwork NestedProviderNetwork `json:"provider_network"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site NestedSite `json:"site"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	Url           *string `json:"url,omitempty"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// CircuitMaintenance Serializer for API.
type CircuitMaintenance struct {
	Ack         *bool                      `json:"ack"`
	Description *string                    `json:"description"`
	EndTime     time.Time                  `json:"end_time"`
	Id          *openapi_types.UUID        `json:"id,omitempty"`
	Name        *string                    `json:"name,omitempty"`
	StartTime   time.Time                  `json:"start_time"`
	Status      *CircuitMaintenance_Status `json:"status"`
}

// CircuitMaintenance_Status defines model for CircuitMaintenance.Status.
type CircuitMaintenance_Status struct {
	union json.RawMessage
}

// CircuitMaintenanceCircuitImpact Serializer for API.
type CircuitMaintenanceCircuitImpact struct {
	Circuit     openapi_types.UUID                      `json:"circuit"`
	Id          *openapi_types.UUID                     `json:"id,omitempty"`
	Impact      *CircuitMaintenanceCircuitImpact_Impact `json:"impact"`
	Maintenance openapi_types.UUID                      `json:"maintenance"`
}

// CircuitMaintenanceCircuitImpact_Impact defines model for CircuitMaintenanceCircuitImpact.Impact.
type CircuitMaintenanceCircuitImpact_Impact struct {
	union json.RawMessage
}

// CircuitMaintenanceCircuitImpactRequest Serializer for API.
type CircuitMaintenanceCircuitImpactRequest struct {
	Circuit     openapi_types.UUID                             `json:"circuit"`
	Impact      *CircuitMaintenanceCircuitImpactRequest_Impact `json:"impact"`
	Maintenance openapi_types.UUID                             `json:"maintenance"`
}

// CircuitMaintenanceCircuitImpactRequest_Impact defines model for CircuitMaintenanceCircuitImpactRequest.Impact.
type CircuitMaintenanceCircuitImpactRequest_Impact struct {
	union json.RawMessage
}

// CircuitMaintenanceRequest Serializer for API.
type CircuitMaintenanceRequest struct {
	Ack         *bool                             `json:"ack"`
	Description *string                           `json:"description"`
	EndTime     time.Time                         `json:"end_time"`
	Name        *string                           `json:"name,omitempty"`
	StartTime   time.Time                         `json:"start_time"`
	Status      *CircuitMaintenanceRequest_Status `json:"status"`
}

// CircuitMaintenanceRequest_Status defines model for CircuitMaintenanceRequest.Status.
type CircuitMaintenanceRequest_Status struct {
	union json.RawMessage
}

// CircuitStatusChoices defines model for CircuitStatusChoices.
type CircuitStatusChoices string

// CircuitTermination Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type CircuitTermination struct {
	Cable         *NestedCable            `json:"cable,omitempty"`
	CablePeer     *map[string]interface{} `json:"cable_peer"`
	CablePeerType *string                 `json:"cable_peer_type"`

	// Circuit Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Circuit                    NestedCircuit           `json:"circuit"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display         *string                `json:"display,omitempty"`
	Id              *openapi_types.UUID    `json:"id,omitempty"`
	LastUpdated     *time.Time             `json:"last_updated"`
	Location        *NestedLocation        `json:"location"`
	NotesUrl        *string                `json:"notes_url,omitempty"`
	PortSpeed       *int                   `json:"port_speed"`
	PpInfo          *string                `json:"pp_info,omitempty"`
	ProviderNetwork *NestedProviderNetwork `json:"provider_network"`
	Site            *NestedSite            `json:"site"`
	TermSide        TermSideEnum           `json:"term_side"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	Url           *string `json:"url,omitempty"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// CircuitType Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type CircuitType struct {
	CircuitCount *int                    `json:"circuit_count,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// CircuitTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type CircuitTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]CircuitTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]CircuitTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]CircuitTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// CircuitTypeRequest_Relationships_Destination_Objects_Item defines model for CircuitTypeRequest.relationships.destination.objects.Item.
type CircuitTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// CircuitTypeRequest_Relationships_Peer_Objects_Item defines model for CircuitTypeRequest.relationships.peer.objects.Item.
type CircuitTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// CircuitTypeRequest_Relationships_Source_Objects_Item defines model for CircuitTypeRequest.relationships.source.objects.Item.
type CircuitTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Cluster Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Cluster struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Group       *NestedClusterGroup   `json:"group"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Location    *NestedLocation       `json:"location"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Site        *NestedSite           `json:"site"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Tenant      *NestedTenant         `json:"tenant"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type                NestedClusterType `json:"type"`
	Url                 *string           `json:"url,omitempty"`
	VirtualmachineCount *int              `json:"virtualmachine_count,omitempty"`
}

// ClusterGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ClusterGroup struct {
	ClusterCount *int                    `json:"cluster_count,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// ClusterGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ClusterGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]ClusterGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]ClusterGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]ClusterGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// ClusterGroupRequest_Relationships_Destination_Objects_Item defines model for ClusterGroupRequest.relationships.destination.objects.Item.
type ClusterGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ClusterGroupRequest_Relationships_Peer_Objects_Item defines model for ClusterGroupRequest.relationships.peer.objects.Item.
type ClusterGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ClusterGroupRequest_Relationships_Source_Objects_Item defines model for ClusterGroupRequest.relationships.source.objects.Item.
type ClusterGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ClusterType Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ClusterType struct {
	ClusterCount *int                    `json:"cluster_count,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// ClusterTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ClusterTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]ClusterTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]ClusterTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]ClusterTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// ClusterTypeRequest_Relationships_Destination_Objects_Item defines model for ClusterTypeRequest.relationships.destination.objects.Item.
type ClusterTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ClusterTypeRequest_Relationships_Peer_Objects_Item defines model for ClusterTypeRequest.relationships.peer.objects.Item.
type ClusterTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ClusterTypeRequest_Relationships_Source_Objects_Item defines model for ClusterTypeRequest.relationships.source.objects.Item.
type ClusterTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// CommandToken API serializer for interacting with CommandToken objects.
type CommandToken struct {
	// Comment Optional: Enter description of token
	Comment *string             `json:"comment,omitempty"`
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Platform    PlatformEnum        `json:"platform"`

	// Token Token given by chat platform for signing or command validation
	Token string  `json:"token"`
	Url   *string `json:"url,omitempty"`
}

// CommandTokenRequest API serializer for interacting with CommandToken objects.
type CommandTokenRequest struct {
	// Comment Optional: Enter description of token
	Comment  *string      `json:"comment,omitempty"`
	Platform PlatformEnum `json:"platform"`

	// Token Token given by chat platform for signing or command validation
	Token string `json:"token"`
}

// ComplianceFeature Serializer for ComplianceFeature object.
type ComplianceFeature struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	Slug        string                `json:"slug"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// ComplianceFeatureRequest Serializer for ComplianceFeature object.
type ComplianceFeatureRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description     *string                      `json:"description,omitempty"`
	Name            string                       `json:"name"`
	Slug            string                       `json:"slug"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ComplianceRule Serializer for ComplianceRule object.
type ComplianceRule struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// ConfigOrdered Whether or not the configuration order matters, such as in ACLs.
	ConfigOrdered bool `json:"config_ordered"`

	// ConfigType Whether the config is in cli or json/structured format.
	ConfigType   *ConfigTypeEnum         `json:"config_type,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Feature     openapi_types.UUID  `json:"feature"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// MatchConfig The config to match that is matched based on the parent most configuration. e.g. `router bgp` or `ntp`.
	MatchConfig *string               `json:"match_config"`
	Platform    openapi_types.UUID    `json:"platform"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// ComplianceRuleRequest Serializer for ComplianceRule object.
type ComplianceRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// ConfigOrdered Whether or not the configuration order matters, such as in ACLs.
	ConfigOrdered bool `json:"config_ordered"`

	// ConfigType Whether the config is in cli or json/structured format.
	ConfigType   *ConfigTypeEnum         `json:"config_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Feature      openapi_types.UUID      `json:"feature"`

	// MatchConfig The config to match that is matched based on the parent most configuration. e.g. `router bgp` or `ntp`.
	MatchConfig *string                      `json:"match_config"`
	Platform    openapi_types.UUID           `json:"platform"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ComputedField Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ComputedField struct {
	ContentType string              `json:"content_type"`
	Created     *openapi_types.Date `json:"created"`
	Description *string             `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// FallbackValue Fallback value (if any) to be output for the field in the case of a template rendering error.
	FallbackValue *string             `json:"fallback_value,omitempty"`
	Id            *openapi_types.UUID `json:"id,omitempty"`

	// Label Name of the field as displayed to users
	Label       string     `json:"label"`
	LastUpdated *time.Time `json:"last_updated"`
	NotesUrl    *string    `json:"notes_url,omitempty"`

	// Slug Internal field name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// Template Jinja2 template code for field value
	Template string  `json:"template"`
	Url      *string `json:"url,omitempty"`
	Weight   *int    `json:"weight,omitempty"`
}

// ComputedFieldRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ComputedFieldRequest struct {
	ContentType string  `json:"content_type"`
	Description *string `json:"description,omitempty"`

	// FallbackValue Fallback value (if any) to be output for the field in the case of a template rendering error.
	FallbackValue *string `json:"fallback_value,omitempty"`

	// Label Name of the field as displayed to users
	Label string `json:"label"`

	// Slug Internal field name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// Template Jinja2 template code for field value
	Template string `json:"template"`
	Weight   *int   `json:"weight,omitempty"`
}

// ConfigCompliance Serializer for ConfigCompliance object.
type ConfigCompliance struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// Actual Actual Configuration for feature
	Actual        *map[string]interface{} `json:"actual,omitempty"`
	Compliance    *bool                   `json:"compliance"`
	ComplianceInt *int                    `json:"compliance_int"`
	Created       *openapi_types.Date     `json:"created"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device The device
	Device openapi_types.UUID `json:"device"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Extra Configuration that should not be on the device.
	Extra *map[string]interface{} `json:"extra,omitempty"`
	Id    *openapi_types.UUID     `json:"id,omitempty"`

	// Intended Intended Configuration for feature
	Intended    *map[string]interface{} `json:"intended,omitempty"`
	LastUpdated *time.Time              `json:"last_updated"`

	// Missing Configuration that should be on the device.
	Missing *map[string]interface{} `json:"missing,omitempty"`
	Ordered *bool                   `json:"ordered,omitempty"`
	Rule    openapi_types.UUID      `json:"rule"`
	Tags    *[]TagSerializerField   `json:"tags,omitempty"`
}

// ConfigComplianceRequest Serializer for ConfigCompliance object.
type ConfigComplianceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// Actual Actual Configuration for feature
	Actual        *map[string]interface{} `json:"actual,omitempty"`
	Compliance    *bool                   `json:"compliance"`
	ComplianceInt *int                    `json:"compliance_int"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device The device
	Device openapi_types.UUID `json:"device"`

	// Extra Configuration that should not be on the device.
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Intended Intended Configuration for feature
	Intended *map[string]interface{} `json:"intended,omitempty"`

	// Missing Configuration that should be on the device.
	Missing *map[string]interface{}      `json:"missing,omitempty"`
	Ordered *bool                        `json:"ordered,omitempty"`
	Rule    openapi_types.UUID           `json:"rule"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ConfigContext Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ConfigContext struct {
	ClusterGroups *[]struct {
		ClusterCount *int `json:"cluster_count,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Slug    *string             `json:"slug,omitempty"`
		Url     *string             `json:"url,omitempty"`
	} `json:"cluster_groups,omitempty"`
	Clusters *[]struct {
		// Display Human friendly display value
		Display             *string             `json:"display,omitempty"`
		Id                  *openapi_types.UUID `json:"id,omitempty"`
		Name                string              `json:"name"`
		Url                 *string             `json:"url,omitempty"`
		VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
	} `json:"clusters,omitempty"`
	Created     *openapi_types.Date    `json:"created"`
	Data        map[string]interface{} `json:"data"`
	Description *string                `json:"description,omitempty"`
	DeviceTypes *[]struct {
		DeviceCount *int `json:"device_count,omitempty"`

		// Display Human friendly display value
		Display      *string             `json:"display,omitempty"`
		Id           *openapi_types.UUID `json:"id,omitempty"`
		Manufacturer *NestedManufacturer `json:"manufacturer,omitempty"`
		Model        string              `json:"model"`
		Slug         string              `json:"slug"`
		Url          *string             `json:"url,omitempty"`
	} `json:"device_types,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	IsActive    *bool               `json:"is_active,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Locations   *[]struct {
		// Display Human friendly display value
		Display   *string             `json:"display,omitempty"`
		Id        *openapi_types.UUID `json:"id,omitempty"`
		Name      string              `json:"name"`
		Slug      *string             `json:"slug,omitempty"`
		TreeDepth *int                `json:"tree_depth"`
		Url       *string             `json:"url,omitempty"`
	} `json:"locations,omitempty"`
	Name             string                  `json:"name"`
	NotesUrl         *string                 `json:"notes_url,omitempty"`
	Owner            *map[string]interface{} `json:"owner"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`
	Platforms        *[]struct {
		DeviceCount *int `json:"device_count,omitempty"`

		// Display Human friendly display value
		Display             *string             `json:"display,omitempty"`
		Id                  *openapi_types.UUID `json:"id,omitempty"`
		Name                string              `json:"name"`
		Slug                *string             `json:"slug,omitempty"`
		Url                 *string             `json:"url,omitempty"`
		VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
	} `json:"platforms,omitempty"`
	Regions *[]struct {
		Depth *int `json:"_depth,omitempty"`

		// Display Human friendly display value
		Display   *string             `json:"display,omitempty"`
		Id        *openapi_types.UUID `json:"id,omitempty"`
		Name      string              `json:"name"`
		SiteCount *int                `json:"site_count,omitempty"`
		Slug      *string             `json:"slug,omitempty"`
		Url       *string             `json:"url,omitempty"`
	} `json:"regions,omitempty"`
	Roles *[]struct {
		DeviceCount *int `json:"device_count,omitempty"`

		// Display Human friendly display value
		Display             *string             `json:"display,omitempty"`
		Id                  *openapi_types.UUID `json:"id,omitempty"`
		Name                string              `json:"name"`
		Slug                *string             `json:"slug,omitempty"`
		Url                 *string             `json:"url,omitempty"`
		VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
	} `json:"roles,omitempty"`
	Schema *NestedConfigContextSchema `json:"schema"`
	Sites  *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Slug    *string             `json:"slug,omitempty"`
		Url     *string             `json:"url,omitempty"`
	} `json:"sites,omitempty"`
	Tags         *[]string `json:"tags,omitempty"`
	TenantGroups *[]struct {
		Depth *int `json:"_depth,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		Name        string              `json:"name"`
		Slug        *string             `json:"slug,omitempty"`
		TenantCount *int                `json:"tenant_count,omitempty"`
		Url         *string             `json:"url,omitempty"`
	} `json:"tenant_groups,omitempty"`
	Tenants *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Slug    *string             `json:"slug,omitempty"`
		Url     *string             `json:"url,omitempty"`
	} `json:"tenants,omitempty"`
	Url    *string `json:"url,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// ConfigContextSchema Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConfigContextSchema struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DataSchema A JSON Schema document which is used to validate a config context object.
	DataSchema  map[string]interface{} `json:"data_schema"`
	Description *string                `json:"description,omitempty"`

	// Display Human friendly display value
	Display          *string                 `json:"display,omitempty"`
	Id               *openapi_types.UUID     `json:"id,omitempty"`
	LastUpdated      *time.Time              `json:"last_updated"`
	Name             string                  `json:"name"`
	NotesUrl         *string                 `json:"notes_url,omitempty"`
	Owner            *map[string]interface{} `json:"owner"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`
	Slug             *string                 `json:"slug,omitempty"`
	Url              *string                 `json:"url,omitempty"`
}

// ConfigContextSchemaRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConfigContextSchemaRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DataSchema A JSON Schema document which is used to validate a config context object.
	DataSchema       map[string]interface{} `json:"data_schema"`
	Description      *string                `json:"description,omitempty"`
	Name             string                 `json:"name"`
	OwnerContentType *string                `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID    `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]ConfigContextSchemaRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]ConfigContextSchemaRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]ConfigContextSchemaRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// ConfigContextSchemaRequest_Relationships_Destination_Objects_Item defines model for ConfigContextSchemaRequest.relationships.destination.objects.Item.
type ConfigContextSchemaRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ConfigContextSchemaRequest_Relationships_Peer_Objects_Item defines model for ConfigContextSchemaRequest.relationships.peer.objects.Item.
type ConfigContextSchemaRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ConfigContextSchemaRequest_Relationships_Source_Objects_Item defines model for ConfigContextSchemaRequest.relationships.source.objects.Item.
type ConfigContextSchemaRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ConfigRemove Serializer for ConfigRemove object.
type ConfigRemove struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	Platform    openapi_types.UUID  `json:"platform"`

	// Regex Regex pattern used to remove a line from the backup configuration.
	Regex string                `json:"regex"`
	Tags  *[]TagSerializerField `json:"tags,omitempty"`
	Url   *string               `json:"url,omitempty"`
}

// ConfigRemoveRequest Serializer for ConfigRemove object.
type ConfigRemoveRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            string                  `json:"name"`
	Platform        openapi_types.UUID      `json:"platform"`

	// Regex Regex pattern used to remove a line from the backup configuration.
	Regex string                       `json:"regex"`
	Tags  *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ConfigReplace Serializer for ConfigReplace object.
type ConfigReplace struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	Platform    openapi_types.UUID  `json:"platform"`

	// Regex Regex pattern that will be found and replaced with 'replaced text'.
	Regex string `json:"regex"`

	// Replace Text that will be inserted in place of Regex pattern match.
	Replace string                `json:"replace"`
	Tags    *[]TagSerializerField `json:"tags,omitempty"`
	Url     *string               `json:"url,omitempty"`
}

// ConfigReplaceRequest Serializer for ConfigReplace object.
type ConfigReplaceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            string                  `json:"name"`
	Platform        openapi_types.UUID      `json:"platform"`

	// Regex Regex pattern that will be found and replaced with 'replaced text'.
	Regex string `json:"regex"`

	// Replace Text that will be inserted in place of Regex pattern match.
	Replace string                       `json:"replace"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ConfigToPush Serializer for ConfigToPush view.
type ConfigToPush struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                      `json:"asset_tag"`
	Cluster               *NestedCluster               `json:"cluster"`
	Comments              *string                      `json:"comments,omitempty"`
	Config                *string                      `json:"config,omitempty"`
	Created               *openapi_types.Date          `json:"created"`
	CustomFields          *map[string]interface{}      `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *NestedDeviceRedundancyGroup `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int `json:"device_redundancy_group_priority"`

	// DeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceRole NestedDeviceRole `json:"device_role"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Face    *struct {
		Label *ConfigToPushFaceLabel `json:"label,omitempty"`
		Value *ConfigToPushFaceValue `json:"value,omitempty"`
	} `json:"face,omitempty"`
	Id                 *openapi_types.UUID        `json:"id,omitempty"`
	LastUpdated        *time.Time                 `json:"last_updated"`
	LocalContextData   *map[string]interface{}    `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchema `json:"local_context_schema"`
	Location           *NestedLocation            `json:"location"`
	Name               *string                    `json:"name"`
	NotesUrl           *string                    `json:"notes_url,omitempty"`
	ParentDevice       *NestedDevice              `json:"parent_device,omitempty"`
	Platform           *NestedPlatform            `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position     *int                `json:"position"`
	PrimaryIp    *NestedIPAddress    `json:"primary_ip,omitempty"`
	PrimaryIp4   *NestedIPAddress    `json:"primary_ip4"`
	PrimaryIp6   *NestedIPAddress    `json:"primary_ip6"`
	Rack         *NestedRack         `json:"rack"`
	SecretsGroup *NestedSecretsGroup `json:"secrets_group"`
	Serial       *string             `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   NestedSite `json:"site"`
	Status struct {
		Label *ConfigToPushStatusLabel `json:"label,omitempty"`
		Value *ConfigToPushStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags           *[]TagSerializerField `json:"tags,omitempty"`
	Tenant         *NestedTenant         `json:"tenant"`
	Url            *string               `json:"url,omitempty"`
	VcPosition     *int                  `json:"vc_position"`
	VcPriority     *int                  `json:"vc_priority"`
	VirtualChassis *NestedVirtualChassis `json:"virtual_chassis"`
}

// ConfigToPushFaceLabel defines model for ConfigToPush.Face.Label.
type ConfigToPushFaceLabel string

// ConfigToPushFaceValue defines model for ConfigToPush.Face.Value.
type ConfigToPushFaceValue string

// ConfigToPushStatusLabel defines model for ConfigToPush.Status.Label.
type ConfigToPushStatusLabel string

// ConfigToPushStatusValue defines model for ConfigToPush.Status.Value.
type ConfigToPushStatusValue string

// ConfigTypeEnum defines model for ConfigTypeEnum.
type ConfigTypeEnum string

// ConsolePort Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConsolePort struct {
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string               `json:"label,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Type        *struct {
		Label *ConsolePortTypeLabel `json:"label,omitempty"`
		Value *ConsolePortTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// ConsolePortTypeLabel defines model for ConsolePort.Type.Label.
type ConsolePortTypeLabel string

// ConsolePortTypeValue defines model for ConsolePort.Type.Value.
type ConsolePortTypeValue string

// ConsolePortTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConsolePortTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	Type        *struct {
		Label *ConsolePortTemplateTypeLabel `json:"label,omitempty"`
		Value *ConsolePortTemplateTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// ConsolePortTemplateTypeLabel defines model for ConsolePortTemplate.Type.Label.
type ConsolePortTemplateTypeLabel string

// ConsolePortTemplateTypeValue defines model for ConsolePortTemplate.Type.Value.
type ConsolePortTemplateTypeValue string

// ConsolePortTypeChoices defines model for ConsolePortTypeChoices.
type ConsolePortTypeChoices string

// ConsoleServerPort Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConsoleServerPort struct {
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string               `json:"label,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Type        *struct {
		Label *ConsoleServerPortTypeLabel `json:"label,omitempty"`
		Value *ConsoleServerPortTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// ConsoleServerPortTypeLabel defines model for ConsoleServerPort.Type.Label.
type ConsoleServerPortTypeLabel string

// ConsoleServerPortTypeValue defines model for ConsoleServerPort.Type.Value.
type ConsoleServerPortTypeValue string

// ConsoleServerPortTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ConsoleServerPortTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	Type        *struct {
		Label *ConsoleServerPortTemplateTypeLabel `json:"label,omitempty"`
		Value *ConsoleServerPortTemplateTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// ConsoleServerPortTemplateTypeLabel defines model for ConsoleServerPortTemplate.Type.Label.
type ConsoleServerPortTemplateTypeLabel string

// ConsoleServerPortTemplateTypeValue defines model for ConsoleServerPortTemplate.Type.Value.
type ConsoleServerPortTemplateTypeValue string

// ContactLCM API serializer.
type ContactLCM struct {
	Address  *string `json:"address,omitempty"`
	Comments *string `json:"comments,omitempty"`

	// Contract Associated Contract
	Contract     NestedContractLCM       `json:"contract"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Email       *openapi_types.Email  `json:"email,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        *string               `json:"name"`
	Phone       *string               `json:"phone,omitempty"`
	Priority    *int                  `json:"priority,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// ContentType This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type ContentType struct {
	AppLabel string  `json:"app_label"`
	Display  *string `json:"display,omitempty"`
	Id       *int    `json:"id,omitempty"`
	Model    string  `json:"model"`
	Url      *string `json:"url,omitempty"`
}

// ContractLCM API serializer.
type ContractLCM struct {
	ContractType *string                 `json:"contract_type"`
	Cost         *string                 `json:"cost"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	End         *openapi_types.Date `json:"end"`
	Expired     *string             `json:"expired,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`

	// Provider Vendor
	Provider     NestedProviderLCM     `json:"provider"`
	Start        *openapi_types.Date   `json:"start"`
	SupportLevel *string               `json:"support_level"`
	Tags         *[]TagSerializerField `json:"tags,omitempty"`
	Url          *string               `json:"url,omitempty"`
}

// CustomFieldChoice Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type CustomFieldChoice struct {
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Field Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Field       NestedCustomField   `json:"field"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Url         *string             `json:"url,omitempty"`
	Value       string              `json:"value"`

	// Weight Higher weights appear later in the list
	Weight *int `json:"weight,omitempty"`
}

// CustomFieldSerializerVersion12 Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type CustomFieldSerializerVersion12 struct {
	ContentTypes []string            `json:"content_types"`
	Created      *openapi_types.Date `json:"created"`

	// Default Default value for the field (must be a JSON value). Encapsulate strings with double quotes (e.g. "Foo").
	Default *map[string]interface{} `json:"default"`

	// Description A helpful description for this field.
	Description *string `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string `json:"display,omitempty"`
	FilterLogic *struct {
		Label *CustomFieldSerializerVersion12FilterLogicLabel `json:"label,omitempty"`
		Value *CustomFieldSerializerVersion12FilterLogicValue `json:"value,omitempty"`
	} `json:"filter_logic,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Label       *string             `json:"label,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Human-readable unique name of this field.
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`

	// Required If true, this field is required when creating new objects or editing an existing object.
	Required *bool   `json:"required,omitempty"`
	Slug     *string `json:"slug,omitempty"`
	Type     struct {
		Label *CustomFieldSerializerVersion12TypeLabel `json:"label,omitempty"`
		Value *CustomFieldSerializerVersion12TypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`

	// ValidationMaximum Maximum allowed value (for numeric fields).
	ValidationMaximum *int64 `json:"validation_maximum"`

	// ValidationMinimum Minimum allowed value (for numeric fields).
	ValidationMinimum *int64 `json:"validation_minimum"`

	// ValidationRegex Regular expression to enforce on text field values. Use ^ and $ to force matching of entire string. For example, <code>^[A-Z]{3}$</code> will limit values to exactly three uppercase letters. Regular expression on select and multi-select will be applied at <code>Custom Field Choices</code> definition.
	ValidationRegex *string `json:"validation_regex,omitempty"`

	// Weight Fields with higher weights appear lower in a form.
	Weight *int `json:"weight,omitempty"`
}

// CustomFieldSerializerVersion12FilterLogicLabel defines model for CustomFieldSerializerVersion12.FilterLogic.Label.
type CustomFieldSerializerVersion12FilterLogicLabel string

// CustomFieldSerializerVersion12FilterLogicValue defines model for CustomFieldSerializerVersion12.FilterLogic.Value.
type CustomFieldSerializerVersion12FilterLogicValue string

// CustomFieldSerializerVersion12TypeLabel defines model for CustomFieldSerializerVersion12.Type.Label.
type CustomFieldSerializerVersion12TypeLabel string

// CustomFieldSerializerVersion12TypeValue defines model for CustomFieldSerializerVersion12.Type.Value.
type CustomFieldSerializerVersion12TypeValue string

// CustomFieldSerializerVersion12Request Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type CustomFieldSerializerVersion12Request struct {
	ContentTypes *[]string `json:"content_types,omitempty"`

	// Default Default value for the field (must be a JSON value). Encapsulate strings with double quotes (e.g. "Foo").
	Default *map[string]interface{} `json:"default"`

	// Description A helpful description for this field.
	Description *string          `json:"description,omitempty"`
	FilterLogic *FilterLogicEnum `json:"filter_logic,omitempty"`
	Label       *string          `json:"label,omitempty"`

	// Name Human-readable unique name of this field.
	Name *string `json:"name,omitempty"`

	// Required If true, this field is required when creating new objects or editing an existing object.
	Required *bool                   `json:"required,omitempty"`
	Slug     *string                 `json:"slug,omitempty"`
	Type     *CustomFieldTypeChoices `json:"type,omitempty"`

	// ValidationMaximum Maximum allowed value (for numeric fields).
	ValidationMaximum *int64 `json:"validation_maximum"`

	// ValidationMinimum Minimum allowed value (for numeric fields).
	ValidationMinimum *int64 `json:"validation_minimum"`

	// ValidationRegex Regular expression to enforce on text field values. Use ^ and $ to force matching of entire string. For example, <code>^[A-Z]{3}$</code> will limit values to exactly three uppercase letters. Regular expression on select and multi-select will be applied at <code>Custom Field Choices</code> definition.
	ValidationRegex *string `json:"validation_regex,omitempty"`

	// Weight Fields with higher weights appear lower in a form.
	Weight *int `json:"weight,omitempty"`
}

// CustomFieldTypeChoices defines model for CustomFieldTypeChoices.
type CustomFieldTypeChoices string

// CustomLink Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type CustomLink struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *ButtonClassEnum    `json:"button_class,omitempty"`
	ContentType string              `json:"content_type"`
	Created     *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// GroupName Links with the same group will appear as a dropdown menu
	GroupName   *string             `json:"group_name,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`

	// NewWindow Force link to open in a new window
	NewWindow bool    `json:"new_window"`
	NotesUrl  *string `json:"notes_url,omitempty"`

	// TargetUrl Jinja2 template code for link URL. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>.
	TargetUrl string `json:"target_url"`

	// Text Jinja2 template code for link text. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>. Links which render as empty text will not be displayed.
	Text   string  `json:"text"`
	Url    *string `json:"url,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// CustomLinkRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type CustomLinkRequest struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *ButtonClassEnum `json:"button_class,omitempty"`
	ContentType string           `json:"content_type"`

	// GroupName Links with the same group will appear as a dropdown menu
	GroupName *string `json:"group_name,omitempty"`
	Name      string  `json:"name"`

	// NewWindow Force link to open in a new window
	NewWindow bool `json:"new_window"`

	// TargetUrl Jinja2 template code for link URL. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>.
	TargetUrl string `json:"target_url"`

	// Text Jinja2 template code for link text. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>. Links which render as empty text will not be displayed.
	Text   string `json:"text"`
	Weight *int   `json:"weight,omitempty"`
}

// Device Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Device struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                      `json:"asset_tag"`
	Cluster               *NestedCluster               `json:"cluster"`
	Comments              *string                      `json:"comments,omitempty"`
	Created               *openapi_types.Date          `json:"created"`
	CustomFields          *map[string]interface{}      `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *NestedDeviceRedundancyGroup `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int `json:"device_redundancy_group_priority"`

	// DeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceRole NestedDeviceRole `json:"device_role"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Face    *struct {
		Label *DeviceFaceLabel `json:"label,omitempty"`
		Value *DeviceFaceValue `json:"value,omitempty"`
	} `json:"face,omitempty"`
	Id                 *openapi_types.UUID        `json:"id,omitempty"`
	LastUpdated        *time.Time                 `json:"last_updated"`
	LocalContextData   *map[string]interface{}    `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchema `json:"local_context_schema"`
	Location           *NestedLocation            `json:"location"`
	Name               *string                    `json:"name"`
	NotesUrl           *string                    `json:"notes_url,omitempty"`
	ParentDevice       *NestedDevice              `json:"parent_device,omitempty"`
	Platform           *NestedPlatform            `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position     *int                `json:"position"`
	PrimaryIp    *NestedIPAddress    `json:"primary_ip,omitempty"`
	PrimaryIp4   *NestedIPAddress    `json:"primary_ip4"`
	PrimaryIp6   *NestedIPAddress    `json:"primary_ip6"`
	Rack         *NestedRack         `json:"rack"`
	SecretsGroup *NestedSecretsGroup `json:"secrets_group"`
	Serial       *string             `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   NestedSite `json:"site"`
	Status struct {
		Label *DeviceStatusLabel `json:"label,omitempty"`
		Value *DeviceStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags           *[]TagSerializerField `json:"tags,omitempty"`
	Tenant         *NestedTenant         `json:"tenant"`
	Url            *string               `json:"url,omitempty"`
	VcPosition     *int                  `json:"vc_position"`
	VcPriority     *int                  `json:"vc_priority"`
	VirtualChassis *NestedVirtualChassis `json:"virtual_chassis"`
}

// DeviceFaceLabel defines model for Device.Face.Label.
type DeviceFaceLabel string

// DeviceFaceValue defines model for Device.Face.Value.
type DeviceFaceValue string

// DeviceStatusLabel defines model for Device.Status.Label.
type DeviceStatusLabel string

// DeviceStatusValue defines model for Device.Status.Value.
type DeviceStatusValue string

// DeviceBay Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceBay struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display         *string             `json:"display,omitempty"`
	Id              *openapi_types.UUID `json:"id,omitempty"`
	InstalledDevice *NestedDevice       `json:"installed_device"`

	// Label Physical label
	Label       *string               `json:"label,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// DeviceBayTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceBayTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	Url         *string    `json:"url,omitempty"`
}

// DeviceNAPALM defines model for DeviceNAPALM.
type DeviceNAPALM struct {
	Method map[string]interface{} `json:"method"`
}

// DeviceRedundancyGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceRedundancyGroup struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display          *string `json:"display,omitempty"`
	FailoverStrategy struct {
		Label *DeviceRedundancyGroupFailoverStrategyLabel `json:"label,omitempty"`
		Value *DeviceRedundancyGroupFailoverStrategyValue `json:"value,omitempty"`
	} `json:"failover_strategy"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`
	Name         string              `json:"name"`
	NotesUrl     *string             `json:"notes_url,omitempty"`
	SecretsGroup *openapi_types.UUID `json:"secrets_group"`
	Slug         *string             `json:"slug,omitempty"`
	Status       struct {
		Label *DeviceRedundancyGroupStatusLabel `json:"label,omitempty"`
		Value *DeviceRedundancyGroupStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// DeviceRedundancyGroupFailoverStrategyLabel defines model for DeviceRedundancyGroup.FailoverStrategy.Label.
type DeviceRedundancyGroupFailoverStrategyLabel string

// DeviceRedundancyGroupFailoverStrategyValue defines model for DeviceRedundancyGroup.FailoverStrategy.Value.
type DeviceRedundancyGroupFailoverStrategyValue string

// DeviceRedundancyGroupStatusLabel defines model for DeviceRedundancyGroup.Status.Label.
type DeviceRedundancyGroupStatusLabel string

// DeviceRedundancyGroupStatusValue defines model for DeviceRedundancyGroup.Status.Value.
type DeviceRedundancyGroupStatusValue string

// DeviceRole Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceRole struct {
	Color        *string                 `json:"color,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display             *string             `json:"display,omitempty"`
	Id                  *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated         *time.Time          `json:"last_updated"`
	Name                string              `json:"name"`
	NotesUrl            *string             `json:"notes_url,omitempty"`
	Slug                *string             `json:"slug,omitempty"`
	Url                 *string             `json:"url,omitempty"`
	VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`

	// VmRole Virtual machines may be assigned to this role
	VmRole *bool `json:"vm_role,omitempty"`
}

// DeviceRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]DeviceRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]DeviceRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]DeviceRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// VmRole Virtual machines may be assigned to this role
	VmRole *bool `json:"vm_role,omitempty"`
}

// DeviceRoleRequest_Relationships_Destination_Objects_Item defines model for DeviceRoleRequest.relationships.destination.objects.Item.
type DeviceRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// DeviceRoleRequest_Relationships_Peer_Objects_Item defines model for DeviceRoleRequest.relationships.peer.objects.Item.
type DeviceRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// DeviceRoleRequest_Relationships_Source_Objects_Item defines model for DeviceRoleRequest.relationships.source.objects.Item.
type DeviceRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// DeviceStatusChoices defines model for DeviceStatusChoices.
type DeviceStatusChoices string

// DeviceType Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceType struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display    *string             `json:"display,omitempty"`
	FrontImage *string             `json:"front_image,omitempty"`
	Id         *openapi_types.UUID `json:"id,omitempty"`

	// IsFullDepth Device consumes both front and rear rack faces
	IsFullDepth *bool      `json:"is_full_depth,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`

	// Manufacturer Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Manufacturer NestedManufacturer `json:"manufacturer"`
	Model        string             `json:"model"`
	NotesUrl     *string            `json:"notes_url,omitempty"`

	// PartNumber Discrete part number (optional)
	PartNumber    *string `json:"part_number,omitempty"`
	RearImage     *string `json:"rear_image,omitempty"`
	Slug          *string `json:"slug,omitempty"`
	SubdeviceRole *struct {
		Label *DeviceTypeSubdeviceRoleLabel `json:"label,omitempty"`
		Value *DeviceTypeSubdeviceRoleValue `json:"value,omitempty"`
	} `json:"subdevice_role,omitempty"`
	Tags    *[]TagSerializerField `json:"tags,omitempty"`
	UHeight *int                  `json:"u_height,omitempty"`
	Url     *string               `json:"url,omitempty"`
}

// DeviceTypeSubdeviceRoleLabel defines model for DeviceType.SubdeviceRole.Label.
type DeviceTypeSubdeviceRoleLabel string

// DeviceTypeSubdeviceRoleValue defines model for DeviceType.SubdeviceRole.Value.
type DeviceTypeSubdeviceRoleValue string

// DeviceWithConfigContext Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DeviceWithConfigContext struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                      `json:"asset_tag"`
	Cluster               *NestedCluster               `json:"cluster"`
	Comments              *string                      `json:"comments,omitempty"`
	ConfigContext         *map[string]interface{}      `json:"config_context,omitempty"`
	Created               *openapi_types.Date          `json:"created"`
	CustomFields          *map[string]interface{}      `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *NestedDeviceRedundancyGroup `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int `json:"device_redundancy_group_priority"`

	// DeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceRole NestedDeviceRole `json:"device_role"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Face    *struct {
		Label *DeviceWithConfigContextFaceLabel `json:"label,omitempty"`
		Value *DeviceWithConfigContextFaceValue `json:"value,omitempty"`
	} `json:"face,omitempty"`
	Id                 *openapi_types.UUID        `json:"id,omitempty"`
	LastUpdated        *time.Time                 `json:"last_updated"`
	LocalContextData   *map[string]interface{}    `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchema `json:"local_context_schema"`
	Location           *NestedLocation            `json:"location"`
	Name               *string                    `json:"name"`
	NotesUrl           *string                    `json:"notes_url,omitempty"`
	ParentDevice       *NestedDevice              `json:"parent_device,omitempty"`
	Platform           *NestedPlatform            `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position     *int                `json:"position"`
	PrimaryIp    *NestedIPAddress    `json:"primary_ip,omitempty"`
	PrimaryIp4   *NestedIPAddress    `json:"primary_ip4"`
	PrimaryIp6   *NestedIPAddress    `json:"primary_ip6"`
	Rack         *NestedRack         `json:"rack"`
	SecretsGroup *NestedSecretsGroup `json:"secrets_group"`
	Serial       *string             `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   NestedSite `json:"site"`
	Status struct {
		Label *DeviceWithConfigContextStatusLabel `json:"label,omitempty"`
		Value *DeviceWithConfigContextStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags           *[]TagSerializerField `json:"tags,omitempty"`
	Tenant         *NestedTenant         `json:"tenant"`
	Url            *string               `json:"url,omitempty"`
	VcPosition     *int                  `json:"vc_position"`
	VcPriority     *int                  `json:"vc_priority"`
	VirtualChassis *NestedVirtualChassis `json:"virtual_chassis"`
}

// DeviceWithConfigContextFaceLabel defines model for DeviceWithConfigContext.Face.Label.
type DeviceWithConfigContextFaceLabel string

// DeviceWithConfigContextFaceValue defines model for DeviceWithConfigContext.Face.Value.
type DeviceWithConfigContextFaceValue string

// DeviceWithConfigContextStatusLabel defines model for DeviceWithConfigContext.Status.Label.
type DeviceWithConfigContextStatusLabel string

// DeviceWithConfigContextStatusValue defines model for DeviceWithConfigContext.Status.Value.
type DeviceWithConfigContextStatusValue string

// DynamicGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DynamicGroup struct {
	Children     *[]NestedDynamicGroupMembership `json:"children,omitempty"`
	ContentType  string                          `json:"content_type"`
	Created      *openapi_types.Date             `json:"created"`
	CustomFields *map[string]interface{}         `json:"custom_fields,omitempty"`
	Description  *string                         `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Filter A JSON-encoded dictionary of filter parameters for group membership
	Filter      map[string]interface{} `json:"filter"`
	Id          *openapi_types.UUID    `json:"id,omitempty"`
	LastUpdated *time.Time             `json:"last_updated"`

	// Name Dynamic Group name
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
	Url  *string `json:"url,omitempty"`
}

// DynamicGroupMembership Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type DynamicGroupMembership struct {
	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group    NestedDynamicGroup  `json:"group"`
	Id       *openapi_types.UUID `json:"id,omitempty"`
	Operator OperatorEnum        `json:"operator"`

	// ParentGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ParentGroup NestedDynamicGroup `json:"parent_group"`
	Url         *string            `json:"url,omitempty"`
	Weight      int                `json:"weight"`
}

// DynamicGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type DynamicGroupRequest struct {
	ContentType  string                  `json:"content_type"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Filter A JSON-encoded dictionary of filter parameters for group membership
	Filter map[string]interface{} `json:"filter"`

	// Name Dynamic Group name
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]DynamicGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]DynamicGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]DynamicGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
}

// DynamicGroupRequest_Relationships_Destination_Objects_Item defines model for DynamicGroupRequest.relationships.destination.objects.Item.
type DynamicGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// DynamicGroupRequest_Relationships_Peer_Objects_Item defines model for DynamicGroupRequest.relationships.peer.objects.Item.
type DynamicGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// DynamicGroupRequest_Relationships_Source_Objects_Item defines model for DynamicGroupRequest.relationships.source.objects.Item.
type DynamicGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ExportTemplate Extend ValidatedModelSerializer with a `relationships` field.
type ExportTemplate struct {
	ContentType string              `json:"content_type"`
	Created     *openapi_types.Date `json:"created"`
	Description *string             `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// FileExtension Extension to append to the rendered filename
	FileExtension *string             `json:"file_extension,omitempty"`
	Id            *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated   *time.Time          `json:"last_updated"`

	// MimeType Defaults to <code>text/plain</code>
	MimeType         *string                 `json:"mime_type,omitempty"`
	Name             string                  `json:"name"`
	NotesUrl         *string                 `json:"notes_url,omitempty"`
	Owner            *map[string]interface{} `json:"owner"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`

	// TemplateCode The list of objects being exported is passed as a context variable named <code>queryset</code>.
	TemplateCode string  `json:"template_code"`
	Url          *string `json:"url,omitempty"`
}

// ExportTemplateRequest Extend ValidatedModelSerializer with a `relationships` field.
type ExportTemplateRequest struct {
	ContentType string  `json:"content_type"`
	Description *string `json:"description,omitempty"`

	// FileExtension Extension to append to the rendered filename
	FileExtension *string `json:"file_extension,omitempty"`

	// MimeType Defaults to <code>text/plain</code>
	MimeType         *string             `json:"mime_type,omitempty"`
	Name             string              `json:"name"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]ExportTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]ExportTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]ExportTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TemplateCode The list of objects being exported is passed as a context variable named <code>queryset</code>.
	TemplateCode string `json:"template_code"`
}

// ExportTemplateRequest_Relationships_Destination_Objects_Item defines model for ExportTemplateRequest.relationships.destination.objects.Item.
type ExportTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ExportTemplateRequest_Relationships_Peer_Objects_Item defines model for ExportTemplateRequest.relationships.peer.objects.Item.
type ExportTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ExportTemplateRequest_Relationships_Source_Objects_Item defines model for ExportTemplateRequest.relationships.source.objects.Item.
type ExportTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// FQDN FQDN Serializer.
type FQDN struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	IpAddresses *[]struct {
		Address string `json:"address"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Family  *int                `json:"family,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Url     *string             `json:"url,omitempty"`
	} `json:"ip_addresses,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`
	Status   *struct {
		Label *FQDNStatusLabel `json:"label,omitempty"`
		Value *FQDNStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// FQDNStatusLabel defines model for FQDN.Status.Label.
type FQDNStatusLabel string

// FQDNStatusValue defines model for FQDN.Status.Value.
type FQDNStatusValue string

// FaceEnum defines model for FaceEnum.
type FaceEnum string

// FailoverStrategyEnum defines model for FailoverStrategyEnum.
type FailoverStrategyEnum string

// FeedLegEnum defines model for FeedLegEnum.
type FeedLegEnum string

// FilterLogicEnum defines model for FilterLogicEnum.
type FilterLogicEnum string

// FrontPort Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type FrontPort struct {
	Cable         *NestedCable            `json:"cable,omitempty"`
	CablePeer     *map[string]interface{} `json:"cable_peer"`
	CablePeerType *string                 `json:"cable_peer_type"`
	Created       *openapi_types.Date     `json:"created"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	NotesUrl    *string    `json:"notes_url,omitempty"`

	// RearPort NestedRearPortSerializer but with parent device omitted (since front and rear ports must belong to same device)
	RearPort         FrontPortRearPort     `json:"rear_port"`
	RearPortPosition *int                  `json:"rear_port_position,omitempty"`
	Tags             *[]TagSerializerField `json:"tags,omitempty"`
	Type             struct {
		Label *FrontPortTypeLabel `json:"label,omitempty"`
		Value *FrontPortTypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`
}

// FrontPortTypeLabel defines model for FrontPort.Type.Label.
type FrontPortTypeLabel string

// FrontPortTypeValue defines model for FrontPort.Type.Value.
type FrontPortTypeValue string

// FrontPortRearPort NestedRearPortSerializer but with parent device omitted (since front and rear ports must belong to same device)
type FrontPortRearPort struct {
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	Url         *string    `json:"url,omitempty"`
}

// FrontPortRearPortRequest NestedRearPortSerializer but with parent device omitted (since front and rear ports must belong to same device)
type FrontPortRearPortRequest struct {
	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  *string `json:"name,omitempty"`
}

// FrontPortTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type FrontPortTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`

	// RearPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	RearPort         NestedRearPortTemplate `json:"rear_port"`
	RearPortPosition *int                   `json:"rear_port_position,omitempty"`
	Type             struct {
		Label *FrontPortTemplateTypeLabel `json:"label,omitempty"`
		Value *FrontPortTemplateTypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`
}

// FrontPortTemplateTypeLabel defines model for FrontPortTemplate.Type.Label.
type FrontPortTemplateTypeLabel string

// FrontPortTemplateTypeValue defines model for FrontPortTemplate.Type.Value.
type FrontPortTemplateTypeValue string

// GitRepository Git repositories defined as a data source.
type GitRepository struct {
	Branch  *string             `json:"branch,omitempty"`
	Created *openapi_types.Date `json:"created"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead  *string                 `json:"current_head,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display          *string                                `json:"display,omitempty"`
	Id               *openapi_types.UUID                    `json:"id,omitempty"`
	LastUpdated      *time.Time                             `json:"last_updated"`
	Name             string                                 `json:"name"`
	NotesUrl         *string                                `json:"notes_url,omitempty"`
	ProvidedContents *[]GitRepository_ProvidedContents_Item `json:"provided_contents,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    string              `json:"remote_url"`
	SecretsGroup *NestedSecretsGroup `json:"secrets_group"`
	Slug         *string             `json:"slug,omitempty"`
	Url          *string             `json:"url,omitempty"`
	Username     *string             `json:"username,omitempty"`
}

// GitRepository_ProvidedContents_Item defines model for GitRepository.provided_contents.Item.
type GitRepository_ProvidedContents_Item struct {
	union json.RawMessage
}

// GitRepositoryRequest Git repositories defined as a data source.
type GitRepositoryRequest struct {
	Branch *string `json:"branch,omitempty"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead      *string                                       `json:"current_head,omitempty"`
	CustomFields     *map[string]interface{}                       `json:"custom_fields,omitempty"`
	Name             string                                        `json:"name"`
	ProvidedContents *[]GitRepositoryRequest_ProvidedContents_Item `json:"provided_contents,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]GitRepositoryRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]GitRepositoryRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]GitRepositoryRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    string                     `json:"remote_url"`
	SecretsGroup *NestedSecretsGroupRequest `json:"secrets_group"`
	Slug         *string                    `json:"slug,omitempty"`
	Token        *string                    `json:"token,omitempty"`
	Username     *string                    `json:"username,omitempty"`
}

// GitRepositoryRequest_ProvidedContents_Item defines model for GitRepositoryRequest.provided_contents.Item.
type GitRepositoryRequest_ProvidedContents_Item struct {
	union json.RawMessage
}

// GitRepositoryRequest_Relationships_Destination_Objects_Item defines model for GitRepositoryRequest.relationships.destination.objects.Item.
type GitRepositoryRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// GitRepositoryRequest_Relationships_Peer_Objects_Item defines model for GitRepositoryRequest.relationships.peer.objects.Item.
type GitRepositoryRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// GitRepositoryRequest_Relationships_Source_Objects_Item defines model for GitRepositoryRequest.relationships.source.objects.Item.
type GitRepositoryRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// GoldenConfig Serializer for GoldenConfig object.
type GoldenConfig struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupConfig Full backup config for device.
	BackupConfig          *string    `json:"backup_config,omitempty"`
	BackupLastAttemptDate *time.Time `json:"backup_last_attempt_date"`
	BackupLastSuccessDate *time.Time `json:"backup_last_success_date"`

	// ComplianceConfig Full config diff for device.
	ComplianceConfig          *string                 `json:"compliance_config,omitempty"`
	ComplianceLastAttemptDate *time.Time              `json:"compliance_last_attempt_date"`
	ComplianceLastSuccessDate *time.Time              `json:"compliance_last_success_date"`
	Created                   *openapi_types.Date     `json:"created"`
	CustomFields              *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device device
	Device openapi_types.UUID `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// IntendedConfig Intended config for the device.
	IntendedConfig          *string               `json:"intended_config,omitempty"`
	IntendedLastAttemptDate *time.Time            `json:"intended_last_attempt_date"`
	IntendedLastSuccessDate *time.Time            `json:"intended_last_success_date"`
	LastUpdated             *time.Time            `json:"last_updated"`
	Tags                    *[]TagSerializerField `json:"tags,omitempty"`
	Url                     *string               `json:"url,omitempty"`
}

// GoldenConfigRequest Serializer for GoldenConfig object.
type GoldenConfigRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupConfig Full backup config for device.
	BackupConfig          *string    `json:"backup_config,omitempty"`
	BackupLastAttemptDate *time.Time `json:"backup_last_attempt_date"`
	BackupLastSuccessDate *time.Time `json:"backup_last_success_date"`

	// ComplianceConfig Full config diff for device.
	ComplianceConfig          *string                 `json:"compliance_config,omitempty"`
	ComplianceLastAttemptDate *time.Time              `json:"compliance_last_attempt_date"`
	ComplianceLastSuccessDate *time.Time              `json:"compliance_last_success_date"`
	CustomFields              *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device device
	Device openapi_types.UUID `json:"device"`

	// IntendedConfig Intended config for the device.
	IntendedConfig          *string                      `json:"intended_config,omitempty"`
	IntendedLastAttemptDate *time.Time                   `json:"intended_last_attempt_date"`
	IntendedLastSuccessDate *time.Time                   `json:"intended_last_success_date"`
	Tags                    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// GoldenConfigSetting Serializer for GoldenConfigSetting object.
type GoldenConfigSetting struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupPathTemplate The Jinja path representation of where the backup file will be found. The variable `obj` is available as the device instance object of a given device, as is the case for all Jinja templates. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	BackupPathTemplate *string             `json:"backup_path_template,omitempty"`
	BackupRepository   *openapi_types.UUID `json:"backup_repository"`

	// BackupTestConnectivity Whether or not to pretest the connectivity of the device by verifying there is a resolvable IP that can connect to port 22.
	BackupTestConnectivity *bool                   `json:"backup_test_connectivity,omitempty"`
	Created                *openapi_types.Date     `json:"created"`
	CustomFields           *map[string]interface{} `json:"custom_fields,omitempty"`
	Description            *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// DynamicGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DynamicGroup *NestedDynamicGroup `json:"dynamic_group,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`

	// IntendedPathTemplate The Jinja path representation of where the generated file will be places. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	IntendedPathTemplate *string             `json:"intended_path_template,omitempty"`
	IntendedRepository   *openapi_types.UUID `json:"intended_repository"`

	// JinjaPathTemplate The Jinja path representation of where the Jinja template can be found. e.g. `{{obj.platform.slug}}.j2`
	JinjaPathTemplate *string                 `json:"jinja_path_template,omitempty"`
	JinjaRepository   *openapi_types.UUID     `json:"jinja_repository"`
	LastUpdated       *time.Time              `json:"last_updated"`
	Name              string                  `json:"name"`
	Scope             *map[string]interface{} `json:"scope,omitempty"`
	Slug              string                  `json:"slug"`
	SotAggQuery       *openapi_types.UUID     `json:"sot_agg_query"`
	Tags              *[]TagSerializerField   `json:"tags,omitempty"`
	Url               *string                 `json:"url,omitempty"`
	Weight            *int                    `json:"weight,omitempty"`
}

// GrantTypeEnum defines model for GrantTypeEnum.
type GrantTypeEnum string

// GraphQLAPIRequest defines model for GraphQLAPIRequest.
type GraphQLAPIRequest struct {
	// Query GraphQL query
	Query string `json:"query"`

	// Variables Variables in JSON Format
	Variables *map[string]interface{} `json:"variables,omitempty"`
}

// GraphQLQuery Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type GraphQLQuery struct {
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display     *string                 `json:"display,omitempty"`
	Id          *openapi_types.UUID     `json:"id,omitempty"`
	LastUpdated *time.Time              `json:"last_updated"`
	Name        string                  `json:"name"`
	NotesUrl    *string                 `json:"notes_url,omitempty"`
	Query       string                  `json:"query"`
	Slug        *string                 `json:"slug,omitempty"`
	Url         *string                 `json:"url,omitempty"`
	Variables   *map[string]interface{} `json:"variables"`
}

// GraphQLQueryInputRequest defines model for GraphQLQueryInputRequest.
type GraphQLQueryInputRequest struct {
	Variables *map[string]interface{} `json:"variables"`
}

// GraphQLQueryOutput defines model for GraphQLQueryOutput.
type GraphQLQueryOutput struct {
	Data *map[string]interface{} `json:"data,omitempty"`
}

// GraphQLQueryRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type GraphQLQueryRequest struct {
	Name      string                  `json:"name"`
	Query     string                  `json:"query"`
	Slug      *string                 `json:"slug,omitempty"`
	Variables *map[string]interface{} `json:"variables"`
}

// Group Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type Group struct {
	// Display Human friendly display value
	Display   *string `json:"display,omitempty"`
	Id        *int    `json:"id,omitempty"`
	Name      string  `json:"name"`
	Url       *string `json:"url,omitempty"`
	UserCount *int    `json:"user_count,omitempty"`
}

// GroupRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type GroupRequest struct {
	Name string `json:"name"`
}

// HardwareLCM API serializer.
type HardwareLCM struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DeviceType Device Type to attach the Hardware LCM to
	DeviceType NestedDeviceType `json:"device_type"`

	// Devices Devices tied to Device Type
	Devices *[]NestedDevice `json:"devices,omitempty"`

	// Display Human friendly display value
	Display              *string               `json:"display,omitempty"`
	DocumentationUrl     *string               `json:"documentation_url,omitempty"`
	EndOfSale            *openapi_types.Date   `json:"end_of_sale"`
	EndOfSecurityPatches *openapi_types.Date   `json:"end_of_security_patches"`
	EndOfSupport         *openapi_types.Date   `json:"end_of_support"`
	EndOfSwReleases      *openapi_types.Date   `json:"end_of_sw_releases"`
	Expired              *string               `json:"expired,omitempty"`
	Id                   *openapi_types.UUID   `json:"id,omitempty"`
	InventoryItem        *string               `json:"inventory_item"`
	LastUpdated          *time.Time            `json:"last_updated"`
	ReleaseDate          *openapi_types.Date   `json:"release_date"`
	Tags                 *[]TagSerializerField `json:"tags,omitempty"`
	Url                  *string               `json:"url,omitempty"`
}

// HttpMethodEnum defines model for HttpMethodEnum.
type HttpMethodEnum string

// IPAddress Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type IPAddress struct {
	Address            string                  `json:"address"`
	AssignedObject     *map[string]interface{} `json:"assigned_object"`
	AssignedObjectId   *openapi_types.UUID     `json:"assigned_object_id"`
	AssignedObjectType *string                 `json:"assigned_object_type"`
	Created            *openapi_types.Date     `json:"created"`
	CustomFields       *map[string]interface{} `json:"custom_fields,omitempty"`
	Description        *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// DnsName Hostname or FQDN (not case-sensitive)
	DnsName *string `json:"dns_name,omitempty"`
	Family  *struct {
		Label *IPAddressFamilyLabel `json:"label,omitempty"`
		Value *IPAddressFamilyValue `json:"value,omitempty"`
	} `json:"family,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	NatInside   *NestedIPAddress    `json:"nat_inside"`
	NatOutside  *[]NestedIPAddress  `json:"nat_outside,omitempty"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Role        *struct {
		Label *IPAddressRoleLabel `json:"label,omitempty"`
		Value *IPAddressRoleValue `json:"value,omitempty"`
	} `json:"role,omitempty"`
	Status struct {
		Label *IPAddressStatusLabel `json:"label,omitempty"`
		Value *IPAddressStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
	Vrf    *NestedVRF            `json:"vrf"`
}

// IPAddressFamilyLabel defines model for IPAddress.Family.Label.
type IPAddressFamilyLabel string

// IPAddressFamilyValue defines model for IPAddress.Family.Value.
type IPAddressFamilyValue int

// IPAddressRoleLabel defines model for IPAddress.Role.Label.
type IPAddressRoleLabel string

// IPAddressRoleValue defines model for IPAddress.Role.Value.
type IPAddressRoleValue string

// IPAddressStatusLabel defines model for IPAddress.Status.Label.
type IPAddressStatusLabel string

// IPAddressStatusValue defines model for IPAddress.Status.Value.
type IPAddressStatusValue string

// IPAddressStatusChoices defines model for IPAddressStatusChoices.
type IPAddressStatusChoices string

// IPRange IPRange Serializer.
type IPRange struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	EndAddress   string              `json:"end_address"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`
	NotesUrl     *string             `json:"notes_url,omitempty"`
	Size         *int                `json:"size,omitempty"`
	StartAddress string              `json:"start_address"`
	Status       *struct {
		Label *IPRangeStatusLabel `json:"label,omitempty"`
		Value *IPRangeStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
	Vrf  *openapi_types.UUID   `json:"vrf"`
}

// IPRangeStatusLabel defines model for IPRange.Status.Label.
type IPRangeStatusLabel string

// IPRangeStatusValue defines model for IPRange.Status.Value.
type IPRangeStatusValue string

// IPRangeRequest IPRange Serializer.
type IPRangeRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	EndAddress      string                  `json:"end_address"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]IPRangeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                           `json:"label,omitempty"`
			ObjectType *string                                           `json:"object_type,omitempty"`
			Objects    *[]IPRangeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                             `json:"label,omitempty"`
			ObjectType *string                                             `json:"object_type,omitempty"`
			Objects    *[]IPRangeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	StartAddress string                       `json:"start_address"`
	Status       *Status8f7Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Vrf          *openapi_types.UUID          `json:"vrf"`
}

// IPRangeRequest_Relationships_Destination_Objects_Item defines model for IPRangeRequest.relationships.destination.objects.Item.
type IPRangeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// IPRangeRequest_Relationships_Peer_Objects_Item defines model for IPRangeRequest.relationships.peer.objects.Item.
type IPRangeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// IPRangeRequest_Relationships_Source_Objects_Item defines model for IPRangeRequest.relationships.source.objects.Item.
type IPRangeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ImageAttachment Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ImageAttachment struct {
	ContentType string     `json:"content_type"`
	Created     *time.Time `json:"created,omitempty"`

	// Display Human friendly display value
	Display     *string                 `json:"display,omitempty"`
	Id          *openapi_types.UUID     `json:"id,omitempty"`
	Image       string                  `json:"image"`
	ImageHeight int                     `json:"image_height"`
	ImageWidth  int                     `json:"image_width"`
	Name        *string                 `json:"name,omitempty"`
	ObjectId    openapi_types.UUID      `json:"object_id"`
	Parent      *map[string]interface{} `json:"parent,omitempty"`
	Url         *string                 `json:"url,omitempty"`
}

// ImageAttachmentRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ImageAttachmentRequest struct {
	ContentType string             `json:"content_type"`
	Image       openapi_types.File `json:"image"`
	ImageHeight int                `json:"image_height"`
	ImageWidth  int                `json:"image_width"`
	Name        *string            `json:"name,omitempty"`
	ObjectId    openapi_types.UUID `json:"object_id"`
}

// ImpactEnum defines model for ImpactEnum.
type ImpactEnum string

// Interface Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Interface struct {
	Bridge                     *NestedInterface        `json:"bridge"`
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	CountIpaddresses           *int                    `json:"count_ipaddresses,omitempty"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string          `json:"label,omitempty"`
	Lag         *NestedInterface `json:"lag"`
	LastUpdated *time.Time       `json:"last_updated"`
	MacAddress  *string          `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly *bool `json:"mgmt_only,omitempty"`
	Mode     *struct {
		Label *InterfaceModeLabel `json:"label,omitempty"`
		Value *InterfaceModeValue `json:"value,omitempty"`
	} `json:"mode,omitempty"`
	Mtu             *int             `json:"mtu"`
	Name            string           `json:"name"`
	NotesUrl        *string          `json:"notes_url,omitempty"`
	ParentInterface *NestedInterface `json:"parent_interface"`
	Status          struct {
		Label *InterfaceStatusLabel `json:"label,omitempty"`
		Value *InterfaceStatusValue `json:"value,omitempty"`
	} `json:"status"`
	TaggedVlans *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Url     *string             `json:"url,omitempty"`
		Vid     int                 `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Type struct {
		Label *InterfaceTypeLabel `json:"label,omitempty"`
		Value *InterfaceTypeValue `json:"value,omitempty"`
	} `json:"type"`
	UntaggedVlan *NestedVLAN `json:"untagged_vlan"`
	Url          *string     `json:"url,omitempty"`
}

// InterfaceModeLabel defines model for Interface.Mode.Label.
type InterfaceModeLabel string

// InterfaceModeValue defines model for Interface.Mode.Value.
type InterfaceModeValue string

// InterfaceStatusLabel defines model for Interface.Status.Label.
type InterfaceStatusLabel string

// InterfaceStatusValue defines model for Interface.Status.Value.
type InterfaceStatusValue string

// InterfaceTypeLabel defines model for Interface.Type.Label.
type InterfaceTypeLabel string

// InterfaceTypeValue defines model for Interface.Type.Value.
type InterfaceTypeValue string

// InterfaceConnection Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type InterfaceConnection struct {
	ConnectedEndpointReachable *bool               `json:"connected_endpoint_reachable"`
	Created                    *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display    *string             `json:"display,omitempty"`
	Id         *openapi_types.UUID `json:"id,omitempty"`
	InterfaceA *NestedInterface    `json:"interface_a,omitempty"`

	// InterfaceB Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	InterfaceB  NestedInterface `json:"interface_b"`
	LastUpdated *time.Time      `json:"last_updated"`
}

// InterfaceSerializerVersion12 Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type InterfaceSerializerVersion12 struct {
	Bridge                     *NestedInterface        `json:"bridge"`
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	CountIpaddresses           *int                    `json:"count_ipaddresses,omitempty"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string          `json:"label,omitempty"`
	Lag         *NestedInterface `json:"lag"`
	LastUpdated *time.Time       `json:"last_updated"`
	MacAddress  *string          `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly *bool `json:"mgmt_only,omitempty"`
	Mode     *struct {
		Label *InterfaceSerializerVersion12ModeLabel `json:"label,omitempty"`
		Value *InterfaceSerializerVersion12ModeValue `json:"value,omitempty"`
	} `json:"mode,omitempty"`
	Mtu             *int             `json:"mtu"`
	Name            string           `json:"name"`
	NotesUrl        *string          `json:"notes_url,omitempty"`
	ParentInterface *NestedInterface `json:"parent_interface"`
	TaggedVlans     *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Url     *string             `json:"url,omitempty"`
		Vid     int                 `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Type struct {
		Label *InterfaceSerializerVersion12TypeLabel `json:"label,omitempty"`
		Value *InterfaceSerializerVersion12TypeValue `json:"value,omitempty"`
	} `json:"type"`
	UntaggedVlan *NestedVLAN `json:"untagged_vlan"`
	Url          *string     `json:"url,omitempty"`
}

// InterfaceSerializerVersion12ModeLabel defines model for InterfaceSerializerVersion12.Mode.Label.
type InterfaceSerializerVersion12ModeLabel string

// InterfaceSerializerVersion12ModeValue defines model for InterfaceSerializerVersion12.Mode.Value.
type InterfaceSerializerVersion12ModeValue string

// InterfaceSerializerVersion12TypeLabel defines model for InterfaceSerializerVersion12.Type.Label.
type InterfaceSerializerVersion12TypeLabel string

// InterfaceSerializerVersion12TypeValue defines model for InterfaceSerializerVersion12.Type.Value.
type InterfaceSerializerVersion12TypeValue string

// InterfaceStatusChoices defines model for InterfaceStatusChoices.
type InterfaceStatusChoices string

// InterfaceTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type InterfaceTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	MgmtOnly    *bool      `json:"mgmt_only,omitempty"`
	Name        string     `json:"name"`
	Type        struct {
		Label *InterfaceTemplateTypeLabel `json:"label,omitempty"`
		Value *InterfaceTemplateTypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`
}

// InterfaceTemplateTypeLabel defines model for InterfaceTemplate.Type.Label.
type InterfaceTemplateTypeLabel string

// InterfaceTemplateTypeValue defines model for InterfaceTemplate.Type.Value.
type InterfaceTemplateTypeValue string

// InterfaceTypeChoices defines model for InterfaceTypeChoices.
type InterfaceTypeChoices string

// InventoryItem Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type InventoryItem struct {
	Depth *int `json:"_depth,omitempty"`

	// AssetTag A unique tag used to identify this item
	AssetTag     *string                 `json:"asset_tag"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Discovered This item was automatically discovered
	Discovered *bool `json:"discovered,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label        *string             `json:"label,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`
	Manufacturer *NestedManufacturer `json:"manufacturer"`
	Name         string              `json:"name"`
	NotesUrl     *string             `json:"notes_url,omitempty"`
	Parent       *openapi_types.UUID `json:"parent"`

	// PartId Manufacturer-assigned part identifier
	PartId *string               `json:"part_id,omitempty"`
	Serial *string               `json:"serial,omitempty"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Url    *string               `json:"url,omitempty"`
}

// IpProtocolEnum defines model for IpProtocolEnum.
type IpProtocolEnum string

// Job Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Job struct {
	// ApprovalRequired Whether the job requires approval from another user before running
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovalRequiredOverride If set, the configured value will remain even if the underlying Job source code changes
	ApprovalRequiredOverride *bool `json:"approval_required_override,omitempty"`

	// CommitDefault Whether the job defaults to committing changes when run, or defaults to a dry-run
	CommitDefault *bool `json:"commit_default,omitempty"`

	// CommitDefaultOverride If set, the configured value will remain even if the underlying Job source code changes
	CommitDefaultOverride *bool                   `json:"commit_default_override,omitempty"`
	Created               *openapi_types.Date     `json:"created"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`

	// Description Markdown formatting is supported
	Description *string `json:"description,omitempty"`

	// DescriptionOverride If set, the configured description will remain even if the underlying Job source code changes
	DescriptionOverride *bool `json:"description_override,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Enabled Whether this job can be executed by users
	Enabled *bool `json:"enabled,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping string `json:"grouping"`

	// GroupingOverride If set, the configured grouping will remain even if the underlying Job source code changes
	GroupingOverride *bool `json:"grouping_override,omitempty"`

	// HasSensitiveVariables Whether this job contains sensitive variables
	HasSensitiveVariables *bool `json:"has_sensitive_variables,omitempty"`

	// HasSensitiveVariablesOverride If set, the configured value will remain even if the underlying Job source code changes
	HasSensitiveVariablesOverride *bool `json:"has_sensitive_variables_override,omitempty"`

	// Hidden Whether the job defaults to not being shown in the UI
	Hidden *bool `json:"hidden,omitempty"`

	// HiddenOverride If set, the configured value will remain even if the underlying Job source code changes
	HiddenOverride *bool               `json:"hidden_override,omitempty"`
	Id             *openapi_types.UUID `json:"id,omitempty"`

	// Installed Whether the Python module and class providing this job are presently installed and loadable
	Installed *bool `json:"installed,omitempty"`

	// IsJobHookReceiver Whether this job is a job hook receiver
	IsJobHookReceiver *bool `json:"is_job_hook_receiver,omitempty"`

	// JobClassName Name of the Python class providing this job
	JobClassName *string    `json:"job_class_name,omitempty"`
	LastUpdated  *time.Time `json:"last_updated"`

	// ModuleName Dotted name of the Python module providing this job
	ModuleName *string `json:"module_name,omitempty"`

	// Name Human-readable name of this job
	Name string `json:"name"`

	// NameOverride If set, the configured name will remain even if the underlying Job source code changes
	NameOverride *bool   `json:"name_override,omitempty"`
	NotesUrl     *string `json:"notes_url,omitempty"`

	// ReadOnly Whether the job is prevented from making lasting changes to the database
	ReadOnly *bool `json:"read_only,omitempty"`

	// ReadOnlyOverride If set, the configured value will remain even if the underlying Job source code changes
	ReadOnlyOverride *bool   `json:"read_only_override,omitempty"`
	Slug             *string `json:"slug,omitempty"`

	// SoftTimeLimit Maximum runtime in seconds before the job will receive a <code>SoftTimeLimitExceeded</code> exception.<br>Set to 0 to use Nautobot system default
	SoftTimeLimit *float64 `json:"soft_time_limit,omitempty"`

	// SoftTimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	SoftTimeLimitOverride *bool `json:"soft_time_limit_override,omitempty"`

	// Source Source of the Python code for this job - local, Git repository, or plugins
	Source *string               `json:"source,omitempty"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`

	// TaskQueues Comma separated list of task queues that this job can run on. A blank list will use the default queue
	TaskQueues *map[string]interface{} `json:"task_queues,omitempty"`

	// TaskQueuesOverride If set, the configured value will remain even if the underlying Job source code changes
	TaskQueuesOverride *bool `json:"task_queues_override,omitempty"`

	// TimeLimit Maximum runtime in seconds before the job will be forcibly terminated.<br>Set to 0 to use Nautobot system default
	TimeLimit *float64 `json:"time_limit,omitempty"`

	// TimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	TimeLimitOverride *bool   `json:"time_limit_override,omitempty"`
	Url               *string `json:"url,omitempty"`
}

// JobClassDetail defines model for JobClassDetail.
type JobClassDetail struct {
	Description *string             `json:"description,omitempty"`
	Id          *string             `json:"id,omitempty"`
	Name        *string             `json:"name,omitempty"`
	Pk          *openapi_types.UUID `json:"pk"`

	// Result Extends ModelSerializer to render any CustomFields and their values associated with an object.
	Result      *JobResult              `json:"result,omitempty"`
	TestMethods []string                `json:"test_methods"`
	Url         *string                 `json:"url,omitempty"`
	Vars        *map[string]interface{} `json:"vars,omitempty"`
}

// JobExecutionTypeIntervalChoices defines model for JobExecutionTypeIntervalChoices.
type JobExecutionTypeIntervalChoices string

// JobHook Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type JobHook struct {
	ContentTypes []string                `json:"content_types"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Job The job that this job hook will initiate
	Job         openapi_types.UUID `json:"job"`
	LastUpdated *time.Time         `json:"last_updated"`
	Name        string             `json:"name"`
	NotesUrl    *string            `json:"notes_url,omitempty"`

	// TypeCreate Call this job hook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this job hook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this job hook when a matching object is updated.
	TypeUpdate *bool   `json:"type_update,omitempty"`
	Url        *string `json:"url,omitempty"`
}

// JobHookRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type JobHookRequest struct {
	ContentTypes []string                `json:"content_types"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`

	// Job The job that this job hook will initiate
	Job           openapi_types.UUID `json:"job"`
	Name          string             `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]JobHookRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                           `json:"label,omitempty"`
			ObjectType *string                                           `json:"object_type,omitempty"`
			Objects    *[]JobHookRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                             `json:"label,omitempty"`
			ObjectType *string                                             `json:"object_type,omitempty"`
			Objects    *[]JobHookRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TypeCreate Call this job hook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this job hook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this job hook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// JobHookRequest_Relationships_Destination_Objects_Item defines model for JobHookRequest.relationships.destination.objects.Item.
type JobHookRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobHookRequest_Relationships_Peer_Objects_Item defines model for JobHookRequest.relationships.peer.objects.Item.
type JobHookRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobHookRequest_Relationships_Source_Objects_Item defines model for JobHookRequest.relationships.source.objects.Item.
type JobHookRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobInputRequest defines model for JobInputRequest.
type JobInputRequest struct {
	Commit *bool                   `json:"commit,omitempty"`
	Data   *map[string]interface{} `json:"data,omitempty"`

	// Schedule This base serializer implements common fields and logic for all ModelSerializers.
	//
	// Namely, it:
	//
	// - defines the `display` field which exposes a human friendly value for the given object.
	// - ensures that `id` field is always present on the serializer as well
	// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
	Schedule  *NestedScheduledJobRequest `json:"schedule,omitempty"`
	TaskQueue *string                    `json:"task_queue,omitempty"`
}

// JobLogEntry This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type JobLogEntry struct {
	AbsoluteUrl *string             `json:"absolute_url"`
	Created     *time.Time          `json:"created,omitempty"`
	Display     *string             `json:"display,omitempty"`
	Grouping    *string             `json:"grouping,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	JobResult   openapi_types.UUID  `json:"job_result"`
	LogLevel    *LogLevelEnum       `json:"log_level,omitempty"`
	LogObject   *string             `json:"log_object"`
	Message     *string             `json:"message,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// JobMultiPartInputRequest JobMultiPartInputSerializer is a "flattened" version of JobInputSerializer for use with multipart/form-data submissions which only accept key-value pairs
type JobMultiPartInputRequest struct {
	Commit            *bool                            `json:"_commit,omitempty"`
	ScheduleCrontab   *string                          `json:"_schedule_crontab,omitempty"`
	ScheduleInterval  *JobExecutionTypeIntervalChoices `json:"_schedule_interval,omitempty"`
	ScheduleName      *string                          `json:"_schedule_name,omitempty"`
	ScheduleStartTime *time.Time                       `json:"_schedule_start_time,omitempty"`
	TaskQueue         *string                          `json:"_task_queue,omitempty"`
}

// JobRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type JobRequest struct {
	// ApprovalRequired Whether the job requires approval from another user before running
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovalRequiredOverride If set, the configured value will remain even if the underlying Job source code changes
	ApprovalRequiredOverride *bool `json:"approval_required_override,omitempty"`

	// CommitDefault Whether the job defaults to committing changes when run, or defaults to a dry-run
	CommitDefault *bool `json:"commit_default,omitempty"`

	// CommitDefaultOverride If set, the configured value will remain even if the underlying Job source code changes
	CommitDefaultOverride *bool                   `json:"commit_default_override,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`

	// Description Markdown formatting is supported
	Description *string `json:"description,omitempty"`

	// DescriptionOverride If set, the configured description will remain even if the underlying Job source code changes
	DescriptionOverride *bool `json:"description_override,omitempty"`

	// Enabled Whether this job can be executed by users
	Enabled *bool `json:"enabled,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping string `json:"grouping"`

	// GroupingOverride If set, the configured grouping will remain even if the underlying Job source code changes
	GroupingOverride *bool `json:"grouping_override,omitempty"`

	// HasSensitiveVariables Whether this job contains sensitive variables
	HasSensitiveVariables *bool `json:"has_sensitive_variables,omitempty"`

	// HasSensitiveVariablesOverride If set, the configured value will remain even if the underlying Job source code changes
	HasSensitiveVariablesOverride *bool `json:"has_sensitive_variables_override,omitempty"`

	// Hidden Whether the job defaults to not being shown in the UI
	Hidden *bool `json:"hidden,omitempty"`

	// HiddenOverride If set, the configured value will remain even if the underlying Job source code changes
	HiddenOverride *bool `json:"hidden_override,omitempty"`

	// Name Human-readable name of this job
	Name string `json:"name"`

	// NameOverride If set, the configured name will remain even if the underlying Job source code changes
	NameOverride *bool `json:"name_override,omitempty"`

	// ReadOnly Whether the job is prevented from making lasting changes to the database
	ReadOnly *bool `json:"read_only,omitempty"`

	// ReadOnlyOverride If set, the configured value will remain even if the underlying Job source code changes
	ReadOnlyOverride *bool `json:"read_only_override,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]JobRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                       `json:"label,omitempty"`
			ObjectType *string                                       `json:"object_type,omitempty"`
			Objects    *[]JobRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                         `json:"label,omitempty"`
			ObjectType *string                                         `json:"object_type,omitempty"`
			Objects    *[]JobRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SoftTimeLimit Maximum runtime in seconds before the job will receive a <code>SoftTimeLimitExceeded</code> exception.<br>Set to 0 to use Nautobot system default
	SoftTimeLimit *float64 `json:"soft_time_limit,omitempty"`

	// SoftTimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	SoftTimeLimitOverride *bool                        `json:"soft_time_limit_override,omitempty"`
	Tags                  *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// TaskQueues Comma separated list of task queues that this job can run on. A blank list will use the default queue
	TaskQueues *map[string]interface{} `json:"task_queues,omitempty"`

	// TaskQueuesOverride If set, the configured value will remain even if the underlying Job source code changes
	TaskQueuesOverride *bool `json:"task_queues_override,omitempty"`

	// TimeLimit Maximum runtime in seconds before the job will be forcibly terminated.<br>Set to 0 to use Nautobot system default
	TimeLimit *float64 `json:"time_limit,omitempty"`

	// TimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	TimeLimitOverride *bool `json:"time_limit_override,omitempty"`
}

// JobRequest_Relationships_Destination_Objects_Item defines model for JobRequest.relationships.destination.objects.Item.
type JobRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobRequest_Relationships_Peer_Objects_Item defines model for JobRequest.relationships.peer.objects.Item.
type JobRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobRequest_Relationships_Source_Objects_Item defines model for JobRequest.relationships.source.objects.Item.
type JobRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// JobResult Extends ModelSerializer to render any CustomFields and their values associated with an object.
type JobResult struct {
	Completed    *time.Time              `json:"completed"`
	Created      *time.Time              `json:"created,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Data         *map[string]interface{} `json:"data"`

	// Display Human friendly display value
	Display   *string                 `json:"display,omitempty"`
	Id        *openapi_types.UUID     `json:"id,omitempty"`
	JobId     openapi_types.UUID      `json:"job_id"`
	JobKwargs *map[string]interface{} `json:"job_kwargs"`
	JobModel  *NestedJob              `json:"job_model,omitempty"`
	Name      string                  `json:"name"`
	ObjType   *string                 `json:"obj_type,omitempty"`
	Schedule  *NestedScheduledJob     `json:"schedule,omitempty"`
	Status    *struct {
		Label *JobResultStatusLabel `json:"label,omitempty"`
		Value *JobResultStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Url  *string     `json:"url,omitempty"`
	User *NestedUser `json:"user,omitempty"`
}

// JobResultStatusLabel defines model for JobResult.Status.Label.
type JobResultStatusLabel string

// JobResultStatusValue defines model for JobResult.Status.Value.
type JobResultStatusValue string

// JobRunResponse Serializer representing responses from the JobModelViewSet.run() POST endpoint.
type JobRunResponse struct {
	JobResult *NestedJobResult    `json:"job_result,omitempty"`
	Schedule  *NestedScheduledJob `json:"schedule,omitempty"`
}

// JobVariable Serializer used for responses from the JobModelViewSet.variables() detail endpoint.
type JobVariable struct {
	Choices   *map[string]interface{} `json:"choices,omitempty"`
	Default   *map[string]interface{} `json:"default,omitempty"`
	HelpText  *string                 `json:"help_text,omitempty"`
	Label     *string                 `json:"label,omitempty"`
	MaxLength *int                    `json:"max_length,omitempty"`
	MaxValue  *int                    `json:"max_value,omitempty"`
	MinLength *int                    `json:"min_length,omitempty"`
	MinValue  *int                    `json:"min_value,omitempty"`
	Model     *string                 `json:"model,omitempty"`
	Name      *string                 `json:"name,omitempty"`
	Required  *bool                   `json:"required,omitempty"`
	Type      *string                 `json:"type,omitempty"`
}

// LengthUnitEnum defines model for LengthUnitEnum.
type LengthUnitEnum string

// Location Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Location struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// LocationType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	LocationType NestedLocationType `json:"location_type"`
	Name         string             `json:"name"`
	NotesUrl     *string            `json:"notes_url,omitempty"`
	Parent       *NestedLocation    `json:"parent"`
	Site         *NestedSite        `json:"site"`
	Slug         *string            `json:"slug,omitempty"`
	Status       struct {
		Label *LocationStatusLabel `json:"label,omitempty"`
		Value *LocationStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags      *[]TagSerializerField `json:"tags,omitempty"`
	Tenant    *NestedTenant         `json:"tenant"`
	TreeDepth *int                  `json:"tree_depth"`
	Url       *string               `json:"url,omitempty"`
}

// LocationStatusLabel defines model for Location.Status.Label.
type LocationStatusLabel string

// LocationStatusValue defines model for Location.Status.Value.
type LocationStatusValue string

// LocationStatusChoices defines model for LocationStatusChoices.
type LocationStatusChoices string

// LocationType Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type LocationType struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`

	// Nestable Allow Locations of this type to be parents/children of other Locations of this same type
	Nestable  *bool               `json:"nestable,omitempty"`
	NotesUrl  *string             `json:"notes_url,omitempty"`
	Parent    *NestedLocationType `json:"parent"`
	Slug      *string             `json:"slug,omitempty"`
	TreeDepth *int                `json:"tree_depth"`
	Url       *string             `json:"url,omitempty"`
}

// LogLevelEnum defines model for LogLevelEnum.
type LogLevelEnum string

// Manufacturer Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Manufacturer struct {
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	DevicetypeCount *int                    `json:"devicetype_count,omitempty"`

	// Display Human friendly display value
	Display            *string             `json:"display,omitempty"`
	Id                 *openapi_types.UUID `json:"id,omitempty"`
	InventoryitemCount *int                `json:"inventoryitem_count,omitempty"`
	LastUpdated        *time.Time          `json:"last_updated"`
	Name               string              `json:"name"`
	NotesUrl           *string             `json:"notes_url,omitempty"`
	PlatformCount      *int                `json:"platform_count,omitempty"`
	Slug               *string             `json:"slug,omitempty"`
	Url                *string             `json:"url,omitempty"`
}

// ManufacturerRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ManufacturerRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]ManufacturerRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]ManufacturerRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]ManufacturerRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// ManufacturerRequest_Relationships_Destination_Objects_Item defines model for ManufacturerRequest.relationships.destination.objects.Item.
type ManufacturerRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ManufacturerRequest_Relationships_Peer_Objects_Item defines model for ManufacturerRequest.relationships.peer.objects.Item.
type ManufacturerRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ManufacturerRequest_Relationships_Source_Objects_Item defines model for ManufacturerRequest.relationships.source.objects.Item.
type ManufacturerRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// MinMaxValidationRule Serializer for `MinMaxValidationRule` objects.
type MinMaxValidationRule struct {
	ContentType string              `json:"content_type"`
	Created     *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Enabled *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage *string             `json:"error_message"`
	Field        string              `json:"field"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`

	// Max When set, apply a maximum value contraint to the value of the model field.
	Max *float64 `json:"max"`

	// Min When set, apply a minimum value contraint to the value of the model field.
	Min  *float64 `json:"min"`
	Name string   `json:"name"`
	Slug string   `json:"slug"`
	Url  *string  `json:"url,omitempty"`
}

// MinMaxValidationRuleRequest Serializer for `MinMaxValidationRule` objects.
type MinMaxValidationRuleRequest struct {
	ContentType string `json:"content_type"`
	Enabled     *bool  `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage *string `json:"error_message"`
	Field        string  `json:"field"`

	// Max When set, apply a maximum value contraint to the value of the model field.
	Max *float64 `json:"max"`

	// Min When set, apply a minimum value contraint to the value of the model field.
	Min  *float64 `json:"min"`
	Name string   `json:"name"`
	Slug string   `json:"slug"`
}

// ModeEnum defines model for ModeEnum.
type ModeEnum string

// NATPolicy NATPolicy Serializer.
type NATPolicy struct {
	CustomFieldData       *map[string]interface{}           `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]NATPolicyDeviceM2MNested       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]NATPolicyDynamicGroupM2MNested `json:"assigned_dynamic_groups,omitempty"`
	Created               *openapi_types.Date               `json:"created"`
	CustomFields          *map[string]interface{}           `json:"custom_fields,omitempty"`
	Description           *string                           `json:"description,omitempty"`

	// Display Human friendly display value
	Display        *string               `json:"display,omitempty"`
	Id             *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated    *time.Time            `json:"last_updated"`
	Name           string                `json:"name"`
	NatPolicyRules *[]openapi_types.UUID `json:"nat_policy_rules,omitempty"`
	NotesUrl       *string               `json:"notes_url,omitempty"`
	Status         *struct {
		Label *NATPolicyStatusLabel `json:"label,omitempty"`
		Value *NATPolicyStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *openapi_types.UUID   `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
}

// NATPolicyStatusLabel defines model for NATPolicy.Status.Label.
type NATPolicyStatusLabel string

// NATPolicyStatusValue defines model for NATPolicy.Status.Value.
type NATPolicyStatusValue string

// NATPolicyDeviceM2MNested NATPolicyDeviceM2M NestedSerializer.
type NATPolicyDeviceM2MNested struct {
	Device openapi_types.UUID `json:"device"`
	Weight *int               `json:"weight,omitempty"`
}

// NATPolicyDeviceM2MNestedRequest NATPolicyDeviceM2M NestedSerializer.
type NATPolicyDeviceM2MNestedRequest struct {
	Device *openapi_types.UUID `json:"device,omitempty"`
	Weight *int                `json:"weight,omitempty"`
}

// NATPolicyDynamicGroupM2MNested NATPolicyDynamicGroupM2M NestedSerializer.
type NATPolicyDynamicGroupM2MNested struct {
	DynamicGroup openapi_types.UUID `json:"dynamic_group"`
	Weight       *int               `json:"weight,omitempty"`
}

// NATPolicyDynamicGroupM2MNestedRequest NATPolicyDynamicGroupM2M NestedSerializer.
type NATPolicyDynamicGroupM2MNestedRequest struct {
	DynamicGroup *openapi_types.UUID `json:"dynamic_group,omitempty"`
	Weight       *int                `json:"weight,omitempty"`
}

// NATPolicyRequest NATPolicy Serializer.
type NATPolicyRequest struct {
	CustomFieldData       *map[string]interface{}                  `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]NATPolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]NATPolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}                  `json:"custom_fields,omitempty"`
	Description           *string                                  `json:"description,omitempty"`
	Name                  string                                   `json:"name"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]NATPolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                             `json:"label,omitempty"`
			ObjectType *string                                             `json:"object_type,omitempty"`
			Objects    *[]NATPolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]NATPolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// NATPolicyRequest_Relationships_Destination_Objects_Item defines model for NATPolicyRequest.relationships.destination.objects.Item.
type NATPolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// NATPolicyRequest_Relationships_Peer_Objects_Item defines model for NATPolicyRequest.relationships.peer.objects.Item.
type NATPolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// NATPolicyRequest_Relationships_Source_Objects_Item defines model for NATPolicyRequest.relationships.source.objects.Item.
type NATPolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// NATPolicyRule PolicyRule Serializer.
type NATPolicyRule struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone *Zone `json:"destination_zone,omitempty"`

	// Display Human friendly display value
	Display                          *string             `json:"display,omitempty"`
	Id                               *openapi_types.UUID `json:"id,omitempty"`
	Index                            *int                `json:"index"`
	LastUpdated                      *time.Time          `json:"last_updated"`
	Log                              *bool               `json:"log,omitempty"`
	Name                             string              `json:"name"`
	NotesUrl                         *string             `json:"notes_url,omitempty"`
	OriginalDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalDestinationAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_destination_address_groups,omitempty"`
	OriginalDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *NATPolicyRuleOriginalDestinationAddressesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalDestinationAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_destination_addresses,omitempty"`
	OriginalDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display        *string             `json:"display,omitempty"`
		Id             *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated    *time.Time          `json:"last_updated"`
		Name           string              `json:"name"`
		NotesUrl       *string             `json:"notes_url,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string             `json:"display,omitempty"`
			Id      *openapi_types.UUID `json:"id,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol  NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`
			LastUpdated *time.Time                                                            `json:"last_updated"`

			// Name Name of the service (e.g. HTTP)
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port   *string `json:"port"`
			Status *struct {
				Label *NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *struct {
			Label *NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalDestinationServiceGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_destination_service_groups,omitempty"`
	OriginalDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  NATPolicyRuleOriginalDestinationServicesIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                                         `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *NATPolicyRuleOriginalDestinationServicesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalDestinationServicesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_destination_services,omitempty"`
	OriginalSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *NATPolicyRuleOriginalSourceAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalSourceAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_source_address_groups,omitempty"`
	OriginalSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *NATPolicyRuleOriginalSourceAddressesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalSourceAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_source_addresses,omitempty"`
	OriginalSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display        *string             `json:"display,omitempty"`
		Id             *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated    *time.Time          `json:"last_updated"`
		Name           string              `json:"name"`
		NotesUrl       *string             `json:"notes_url,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string             `json:"display,omitempty"`
			Id      *openapi_types.UUID `json:"id,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol  NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`
			LastUpdated *time.Time                                                       `json:"last_updated"`

			// Name Name of the service (e.g. HTTP)
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port   *string `json:"port"`
			Status *struct {
				Label *NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *struct {
			Label *NATPolicyRuleOriginalSourceServiceGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalSourceServiceGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_source_service_groups,omitempty"`
	OriginalSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  NATPolicyRuleOriginalSourceServicesIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                                    `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *NATPolicyRuleOriginalSourceServicesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleOriginalSourceServicesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"original_source_services,omitempty"`
	Remark    *bool   `json:"remark,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone *Zone `json:"source_zone,omitempty"`
	Status     *struct {
		Label *NATPolicyRuleStatusLabel `json:"label,omitempty"`
		Value *NATPolicyRuleStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags                               *[]TagSerializerField `json:"tags,omitempty"`
	TranslatedDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_destination_address_groups,omitempty"`
	TranslatedDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *NATPolicyRuleTranslatedDestinationAddressesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedDestinationAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_destination_addresses,omitempty"`
	TranslatedDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display        *string             `json:"display,omitempty"`
		Id             *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated    *time.Time          `json:"last_updated"`
		Name           string              `json:"name"`
		NotesUrl       *string             `json:"notes_url,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string             `json:"display,omitempty"`
			Id      *openapi_types.UUID `json:"id,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol  NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`
			LastUpdated *time.Time                                                              `json:"last_updated"`

			// Name Name of the service (e.g. HTTP)
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port   *string `json:"port"`
			Status *struct {
				Label *NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *struct {
			Label *NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_destination_service_groups,omitempty"`
	TranslatedDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  NATPolicyRuleTranslatedDestinationServicesIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                                           `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *NATPolicyRuleTranslatedDestinationServicesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedDestinationServicesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_destination_services,omitempty"`
	TranslatedSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedSourceAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_source_address_groups,omitempty"`
	TranslatedSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *NATPolicyRuleTranslatedSourceAddressesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedSourceAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_source_addresses,omitempty"`
	TranslatedSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display        *string             `json:"display,omitempty"`
		Id             *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated    *time.Time          `json:"last_updated"`
		Name           string              `json:"name"`
		NotesUrl       *string             `json:"notes_url,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string             `json:"display,omitempty"`
			Id      *openapi_types.UUID `json:"id,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol  NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`
			LastUpdated *time.Time                                                         `json:"last_updated"`

			// Name Name of the service (e.g. HTTP)
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port   *string `json:"port"`
			Status *struct {
				Label *NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel `json:"label,omitempty"`
				Value *NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *struct {
			Label *NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedSourceServiceGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_source_service_groups,omitempty"`
	TranslatedSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  NATPolicyRuleTranslatedSourceServicesIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                                      `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *NATPolicyRuleTranslatedSourceServicesStatusLabel `json:"label,omitempty"`
			Value *NATPolicyRuleTranslatedSourceServicesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"translated_source_services,omitempty"`
	Url *string `json:"url,omitempty"`
}

// NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel defines model for NATPolicyRule.OriginalDestinationAddressGroups.AddressObjects.Status.Label.
type NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusLabel string

// NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue defines model for NATPolicyRule.OriginalDestinationAddressGroups.AddressObjects.Status.Value.
type NATPolicyRuleOriginalDestinationAddressGroupsAddressObjectsStatusValue string

// NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel defines model for NATPolicyRule.OriginalDestinationAddressGroups.Status.Label.
type NATPolicyRuleOriginalDestinationAddressGroupsStatusLabel string

// NATPolicyRuleOriginalDestinationAddressGroupsStatusValue defines model for NATPolicyRule.OriginalDestinationAddressGroups.Status.Value.
type NATPolicyRuleOriginalDestinationAddressGroupsStatusValue string

// NATPolicyRuleOriginalDestinationAddressesStatusLabel defines model for NATPolicyRule.OriginalDestinationAddresses.Status.Label.
type NATPolicyRuleOriginalDestinationAddressesStatusLabel string

// NATPolicyRuleOriginalDestinationAddressesStatusValue defines model for NATPolicyRule.OriginalDestinationAddresses.Status.Value.
type NATPolicyRuleOriginalDestinationAddressesStatusValue string

// NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsIpProtocol string

// NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel defines model for NATPolicyRule.OriginalDestinationServiceGroups.ServiceObjects.Status.Label.
type NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusLabel string

// NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue defines model for NATPolicyRule.OriginalDestinationServiceGroups.ServiceObjects.Status.Value.
type NATPolicyRuleOriginalDestinationServiceGroupsServiceObjectsStatusValue string

// NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel defines model for NATPolicyRule.OriginalDestinationServiceGroups.Status.Label.
type NATPolicyRuleOriginalDestinationServiceGroupsStatusLabel string

// NATPolicyRuleOriginalDestinationServiceGroupsStatusValue defines model for NATPolicyRule.OriginalDestinationServiceGroups.Status.Value.
type NATPolicyRuleOriginalDestinationServiceGroupsStatusValue string

// NATPolicyRuleOriginalDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleOriginalDestinationServicesIpProtocol string

// NATPolicyRuleOriginalDestinationServicesStatusLabel defines model for NATPolicyRule.OriginalDestinationServices.Status.Label.
type NATPolicyRuleOriginalDestinationServicesStatusLabel string

// NATPolicyRuleOriginalDestinationServicesStatusValue defines model for NATPolicyRule.OriginalDestinationServices.Status.Value.
type NATPolicyRuleOriginalDestinationServicesStatusValue string

// NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel defines model for NATPolicyRule.OriginalSourceAddressGroups.AddressObjects.Status.Label.
type NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusLabel string

// NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue defines model for NATPolicyRule.OriginalSourceAddressGroups.AddressObjects.Status.Value.
type NATPolicyRuleOriginalSourceAddressGroupsAddressObjectsStatusValue string

// NATPolicyRuleOriginalSourceAddressGroupsStatusLabel defines model for NATPolicyRule.OriginalSourceAddressGroups.Status.Label.
type NATPolicyRuleOriginalSourceAddressGroupsStatusLabel string

// NATPolicyRuleOriginalSourceAddressGroupsStatusValue defines model for NATPolicyRule.OriginalSourceAddressGroups.Status.Value.
type NATPolicyRuleOriginalSourceAddressGroupsStatusValue string

// NATPolicyRuleOriginalSourceAddressesStatusLabel defines model for NATPolicyRule.OriginalSourceAddresses.Status.Label.
type NATPolicyRuleOriginalSourceAddressesStatusLabel string

// NATPolicyRuleOriginalSourceAddressesStatusValue defines model for NATPolicyRule.OriginalSourceAddresses.Status.Value.
type NATPolicyRuleOriginalSourceAddressesStatusValue string

// NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsIpProtocol string

// NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel defines model for NATPolicyRule.OriginalSourceServiceGroups.ServiceObjects.Status.Label.
type NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusLabel string

// NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue defines model for NATPolicyRule.OriginalSourceServiceGroups.ServiceObjects.Status.Value.
type NATPolicyRuleOriginalSourceServiceGroupsServiceObjectsStatusValue string

// NATPolicyRuleOriginalSourceServiceGroupsStatusLabel defines model for NATPolicyRule.OriginalSourceServiceGroups.Status.Label.
type NATPolicyRuleOriginalSourceServiceGroupsStatusLabel string

// NATPolicyRuleOriginalSourceServiceGroupsStatusValue defines model for NATPolicyRule.OriginalSourceServiceGroups.Status.Value.
type NATPolicyRuleOriginalSourceServiceGroupsStatusValue string

// NATPolicyRuleOriginalSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleOriginalSourceServicesIpProtocol string

// NATPolicyRuleOriginalSourceServicesStatusLabel defines model for NATPolicyRule.OriginalSourceServices.Status.Label.
type NATPolicyRuleOriginalSourceServicesStatusLabel string

// NATPolicyRuleOriginalSourceServicesStatusValue defines model for NATPolicyRule.OriginalSourceServices.Status.Value.
type NATPolicyRuleOriginalSourceServicesStatusValue string

// NATPolicyRuleStatusLabel defines model for NATPolicyRule.Status.Label.
type NATPolicyRuleStatusLabel string

// NATPolicyRuleStatusValue defines model for NATPolicyRule.Status.Value.
type NATPolicyRuleStatusValue string

// NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel defines model for NATPolicyRule.TranslatedDestinationAddressGroups.AddressObjects.Status.Label.
type NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusLabel string

// NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue defines model for NATPolicyRule.TranslatedDestinationAddressGroups.AddressObjects.Status.Value.
type NATPolicyRuleTranslatedDestinationAddressGroupsAddressObjectsStatusValue string

// NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel defines model for NATPolicyRule.TranslatedDestinationAddressGroups.Status.Label.
type NATPolicyRuleTranslatedDestinationAddressGroupsStatusLabel string

// NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue defines model for NATPolicyRule.TranslatedDestinationAddressGroups.Status.Value.
type NATPolicyRuleTranslatedDestinationAddressGroupsStatusValue string

// NATPolicyRuleTranslatedDestinationAddressesStatusLabel defines model for NATPolicyRule.TranslatedDestinationAddresses.Status.Label.
type NATPolicyRuleTranslatedDestinationAddressesStatusLabel string

// NATPolicyRuleTranslatedDestinationAddressesStatusValue defines model for NATPolicyRule.TranslatedDestinationAddresses.Status.Value.
type NATPolicyRuleTranslatedDestinationAddressesStatusValue string

// NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsIpProtocol string

// NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel defines model for NATPolicyRule.TranslatedDestinationServiceGroups.ServiceObjects.Status.Label.
type NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusLabel string

// NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue defines model for NATPolicyRule.TranslatedDestinationServiceGroups.ServiceObjects.Status.Value.
type NATPolicyRuleTranslatedDestinationServiceGroupsServiceObjectsStatusValue string

// NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel defines model for NATPolicyRule.TranslatedDestinationServiceGroups.Status.Label.
type NATPolicyRuleTranslatedDestinationServiceGroupsStatusLabel string

// NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue defines model for NATPolicyRule.TranslatedDestinationServiceGroups.Status.Value.
type NATPolicyRuleTranslatedDestinationServiceGroupsStatusValue string

// NATPolicyRuleTranslatedDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleTranslatedDestinationServicesIpProtocol string

// NATPolicyRuleTranslatedDestinationServicesStatusLabel defines model for NATPolicyRule.TranslatedDestinationServices.Status.Label.
type NATPolicyRuleTranslatedDestinationServicesStatusLabel string

// NATPolicyRuleTranslatedDestinationServicesStatusValue defines model for NATPolicyRule.TranslatedDestinationServices.Status.Value.
type NATPolicyRuleTranslatedDestinationServicesStatusValue string

// NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel defines model for NATPolicyRule.TranslatedSourceAddressGroups.AddressObjects.Status.Label.
type NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusLabel string

// NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue defines model for NATPolicyRule.TranslatedSourceAddressGroups.AddressObjects.Status.Value.
type NATPolicyRuleTranslatedSourceAddressGroupsAddressObjectsStatusValue string

// NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel defines model for NATPolicyRule.TranslatedSourceAddressGroups.Status.Label.
type NATPolicyRuleTranslatedSourceAddressGroupsStatusLabel string

// NATPolicyRuleTranslatedSourceAddressGroupsStatusValue defines model for NATPolicyRule.TranslatedSourceAddressGroups.Status.Value.
type NATPolicyRuleTranslatedSourceAddressGroupsStatusValue string

// NATPolicyRuleTranslatedSourceAddressesStatusLabel defines model for NATPolicyRule.TranslatedSourceAddresses.Status.Label.
type NATPolicyRuleTranslatedSourceAddressesStatusLabel string

// NATPolicyRuleTranslatedSourceAddressesStatusValue defines model for NATPolicyRule.TranslatedSourceAddresses.Status.Value.
type NATPolicyRuleTranslatedSourceAddressesStatusValue string

// NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsIpProtocol string

// NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel defines model for NATPolicyRule.TranslatedSourceServiceGroups.ServiceObjects.Status.Label.
type NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusLabel string

// NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue defines model for NATPolicyRule.TranslatedSourceServiceGroups.ServiceObjects.Status.Value.
type NATPolicyRuleTranslatedSourceServiceGroupsServiceObjectsStatusValue string

// NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel defines model for NATPolicyRule.TranslatedSourceServiceGroups.Status.Label.
type NATPolicyRuleTranslatedSourceServiceGroupsStatusLabel string

// NATPolicyRuleTranslatedSourceServiceGroupsStatusValue defines model for NATPolicyRule.TranslatedSourceServiceGroups.Status.Value.
type NATPolicyRuleTranslatedSourceServiceGroupsStatusValue string

// NATPolicyRuleTranslatedSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type NATPolicyRuleTranslatedSourceServicesIpProtocol string

// NATPolicyRuleTranslatedSourceServicesStatusLabel defines model for NATPolicyRule.TranslatedSourceServices.Status.Label.
type NATPolicyRuleTranslatedSourceServicesStatusLabel string

// NATPolicyRuleTranslatedSourceServicesStatusValue defines model for NATPolicyRule.TranslatedSourceServices.Status.Value.
type NATPolicyRuleTranslatedSourceServicesStatusValue string

// NestedAutonomousSystem Nested/brief serializer for AutonomousSystem.
type NestedAutonomousSystem struct {
	// Asn 32-bit autonomous system number
	Asn int64 `json:"asn"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedAutonomousSystemRequest Nested/brief serializer for AutonomousSystem.
type NestedAutonomousSystemRequest struct {
	// Asn 32-bit autonomous system number
	Asn *int64 `json:"asn,omitempty"`
}

// NestedCVELCM Nested serializer for the CVE class.
type NestedCVELCM struct {
	Comments    *string  `json:"comments,omitempty"`
	Cvss        *float64 `json:"cvss"`
	CvssV2      *float64 `json:"cvss_v2"`
	CvssV3      *float64 `json:"cvss_v3"`
	Description *string  `json:"description"`

	// Display Human friendly display value
	Display       *string             `json:"display,omitempty"`
	Fix           *string             `json:"fix"`
	Id            *openapi_types.UUID `json:"id,omitempty"`
	Link          string              `json:"link"`
	Name          string              `json:"name"`
	PublishedDate openapi_types.Date  `json:"published_date"`
	Severity      *SeverityEnum       `json:"severity,omitempty"`
	Status        *openapi_types.UUID `json:"status"`
	Url           *string             `json:"url,omitempty"`
}

// NestedCable This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NestedCable struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Label   *string             `json:"label,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedCircuit Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCircuit struct {
	Cid string `json:"cid"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedCircuitRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCircuitRequest struct {
	Cid *string `json:"cid,omitempty"`
}

// NestedCircuitType Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCircuitType struct {
	CircuitCount *int `json:"circuit_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedCircuitTypeRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCircuitTypeRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedCluster Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCluster struct {
	// Display Human friendly display value
	Display             *string             `json:"display,omitempty"`
	Id                  *openapi_types.UUID `json:"id,omitempty"`
	Name                string              `json:"name"`
	Url                 *string             `json:"url,omitempty"`
	VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
}

// NestedClusterGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedClusterGroup struct {
	ClusterCount *int `json:"cluster_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedClusterGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedClusterGroupRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedClusterRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedClusterRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedClusterType Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedClusterType struct {
	ClusterCount *int `json:"cluster_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedClusterTypeRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedClusterTypeRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedConfigContextSchema Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedConfigContextSchema struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedConfigContextSchemaRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedConfigContextSchemaRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedContractLCM API serializer.
type NestedContractLCM struct {
	ContractType *string `json:"contract_type"`
	Cost         *string `json:"cost"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	End     *openapi_types.Date `json:"end"`
	Expired *string             `json:"expired,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`

	// Provider Contract Provider
	Provider     NestedProviderLCM   `json:"provider"`
	Start        *openapi_types.Date `json:"start"`
	SupportLevel *string             `json:"support_level"`
}

// NestedContractLCMRequest API serializer.
type NestedContractLCMRequest struct {
	ContractType *string             `json:"contract_type"`
	Cost         *string             `json:"cost"`
	End          *openapi_types.Date `json:"end"`
	Name         *string             `json:"name,omitempty"`

	// Provider Contract Provider
	Provider     *NestedProviderLCMRequest `json:"provider,omitempty"`
	Start        *openapi_types.Date       `json:"start"`
	SupportLevel *string                   `json:"support_level"`
}

// NestedCustomField Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCustomField struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Name Human-readable unique name of this field.
	Name string  `json:"name"`
	Url  *string `json:"url,omitempty"`
}

// NestedCustomFieldRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedCustomFieldRequest struct {
	// Name Human-readable unique name of this field.
	Name *string `json:"name,omitempty"`
}

// NestedDevice Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDevice struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    *string             `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedDeviceRedundancyGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceRedundancyGroup struct {
	// Display Human friendly display value
	Display          *string                                       `json:"display,omitempty"`
	FailoverStrategy *NestedDeviceRedundancyGroup_FailoverStrategy `json:"failover_strategy,omitempty"`
	Id               *openapi_types.UUID                           `json:"id,omitempty"`
	Name             string                                        `json:"name"`
	Slug             *string                                       `json:"slug,omitempty"`
	Url              *string                                       `json:"url,omitempty"`
}

// NestedDeviceRedundancyGroup_FailoverStrategy defines model for NestedDeviceRedundancyGroup.FailoverStrategy.
type NestedDeviceRedundancyGroup_FailoverStrategy struct {
	union json.RawMessage
}

// NestedDeviceRedundancyGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceRedundancyGroupRequest struct {
	FailoverStrategy *NestedDeviceRedundancyGroupRequest_FailoverStrategy `json:"failover_strategy,omitempty"`
	Name             *string                                              `json:"name,omitempty"`
	Slug             *string                                              `json:"slug,omitempty"`
}

// NestedDeviceRedundancyGroupRequest_FailoverStrategy defines model for NestedDeviceRedundancyGroupRequest.FailoverStrategy.
type NestedDeviceRedundancyGroupRequest_FailoverStrategy struct {
	union json.RawMessage
}

// NestedDeviceRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceRequest struct {
	Name *string `json:"name"`
}

// NestedDeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceRole struct {
	DeviceCount *int `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display             *string             `json:"display,omitempty"`
	Id                  *openapi_types.UUID `json:"id,omitempty"`
	Name                string              `json:"name"`
	Slug                *string             `json:"slug,omitempty"`
	Url                 *string             `json:"url,omitempty"`
	VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
}

// NestedDeviceRoleRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceRoleRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedDeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceType struct {
	DeviceCount *int `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	Manufacturer *NestedManufacturer `json:"manufacturer,omitempty"`
	Model        string              `json:"model"`
	Slug         string              `json:"slug"`
	Url          *string             `json:"url,omitempty"`
}

// NestedDeviceTypeRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDeviceTypeRequest struct {
	Model *string `json:"model,omitempty"`
	Slug  *string `json:"slug,omitempty"`
}

// NestedDynamicGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDynamicGroup struct {
	ContentType string `json:"content_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Name Dynamic Group name
	Name string `json:"name"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
	Url  *string `json:"url,omitempty"`
}

// NestedDynamicGroupMembership Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDynamicGroupMembership struct {
	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group    NestedDynamicGroup  `json:"group"`
	Id       *openapi_types.UUID `json:"id,omitempty"`
	Operator OperatorEnum        `json:"operator"`

	// ParentGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ParentGroup NestedDynamicGroup `json:"parent_group"`
	Url         *string            `json:"url,omitempty"`
	Weight      int                `json:"weight"`
}

// NestedDynamicGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedDynamicGroupRequest struct {
	ContentType *string `json:"content_type,omitempty"`

	// Name Dynamic Group name
	Name *string `json:"name,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
}

// NestedFQDN Nested serializer for FQDN.
type NestedFQDN struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name string  `json:"name"`
	Url  *string `json:"url,omitempty"`
}

// NestedFQDNRequest Nested serializer for FQDN.
type NestedFQDNRequest struct {
	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name *string `json:"name,omitempty"`
}

// NestedIPAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedIPAddress struct {
	Address string `json:"address"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Family  *int                `json:"family,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedIPAddressRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedIPAddressRequest struct {
	Address *string `json:"address,omitempty"`
}

// NestedIPRange Nested serializer for IPRange.
type NestedIPRange struct {
	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	EndAddress   string              `json:"end_address"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	StartAddress string              `json:"start_address"`
	Url          *string             `json:"url,omitempty"`
}

// NestedIPRangeRequest Nested serializer for IPRange.
type NestedIPRangeRequest struct {
	EndAddress   *string `json:"end_address,omitempty"`
	StartAddress *string `json:"start_address,omitempty"`
}

// NestedInterface Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedInterface struct {
	Cable  *openapi_types.UUID `json:"cable"`
	Device *NestedDevice       `json:"device,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedInterfaceRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedInterfaceRequest struct {
	Cable *openapi_types.UUID `json:"cable"`
	Name  *string             `json:"name,omitempty"`
}

// NestedInventoryItem Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedInventoryItem struct {
	Depth  *int          `json:"_depth,omitempty"`
	Device *NestedDevice `json:"device,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedJob This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NestedJob struct {
	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping string              `json:"grouping"`
	Id       *openapi_types.UUID `json:"id,omitempty"`

	// JobClassName Name of the Python class providing this job
	JobClassName *string `json:"job_class_name,omitempty"`

	// ModuleName Dotted name of the Python module providing this job
	ModuleName *string `json:"module_name,omitempty"`

	// Name Human-readable name of this job
	Name string  `json:"name"`
	Slug *string `json:"slug,omitempty"`

	// Source Source of the Python code for this job - local, Git repository, or plugins
	Source *string `json:"source,omitempty"`
	Url    *string `json:"url,omitempty"`
}

// NestedJobResult This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NestedJobResult struct {
	Completed *time.Time `json:"completed"`
	Created   *time.Time `json:"created,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Status  struct {
		Label *NestedJobResultStatusLabel `json:"label,omitempty"`
		Value *NestedJobResultStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Url  *string     `json:"url,omitempty"`
	User *NestedUser `json:"user,omitempty"`
}

// NestedJobResultStatusLabel defines model for NestedJobResult.Status.Label.
type NestedJobResultStatusLabel string

// NestedJobResultStatusValue defines model for NestedJobResult.Status.Value.
type NestedJobResultStatusValue string

// NestedLocation Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedLocation struct {
	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	Slug      *string             `json:"slug,omitempty"`
	TreeDepth *int                `json:"tree_depth"`
	Url       *string             `json:"url,omitempty"`
}

// NestedLocationRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedLocationRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedLocationType Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedLocationType struct {
	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	Slug      *string             `json:"slug,omitempty"`
	TreeDepth *int                `json:"tree_depth"`
	Url       *string             `json:"url,omitempty"`
}

// NestedLocationTypeRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedLocationTypeRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedManufacturer Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedManufacturer struct {
	DevicetypeCount *int `json:"devicetype_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedManufacturerRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedManufacturerRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedPeerEndpoint Nested/brief serializer for PeerEndpoint.
type NestedPeerEndpoint struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPeerGroup Nested/brief serializer for PeerGroup.
type NestedPeerGroup struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Role    *openapi_types.UUID `json:"role"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPeerGroupRequest Nested/brief serializer for PeerGroup.
type NestedPeerGroupRequest struct {
	Enabled *bool               `json:"enabled,omitempty"`
	Name    *string             `json:"name,omitempty"`
	Role    *openapi_types.UUID `json:"role"`
}

// NestedPeerGroupTemplate Nested/brief serializer for PeerGroup.
type NestedPeerGroupTemplate struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Enabled *bool               `json:"enabled,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Role    *openapi_types.UUID `json:"role"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPeerGroupTemplateRequest Nested/brief serializer for PeerGroup.
type NestedPeerGroupTemplateRequest struct {
	Enabled *bool               `json:"enabled,omitempty"`
	Name    *string             `json:"name,omitempty"`
	Role    *openapi_types.UUID `json:"role"`
}

// NestedPeering Nested/brief serializer for Peering.
type NestedPeering struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Status  *openapi_types.UUID `json:"status"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPeeringRequest Nested/brief serializer for Peering.
type NestedPeeringRequest struct {
	Status *openapi_types.UUID `json:"status"`
}

// NestedPlatform Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPlatform struct {
	DeviceCount *int `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display             *string             `json:"display,omitempty"`
	Id                  *openapi_types.UUID `json:"id,omitempty"`
	Name                string              `json:"name"`
	Slug                *string             `json:"slug,omitempty"`
	Url                 *string             `json:"url,omitempty"`
	VirtualmachineCount *int                `json:"virtualmachine_count,omitempty"`
}

// NestedPlatformRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPlatformRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedPowerPanel Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPanel struct {
	// Display Human friendly display value
	Display        *string             `json:"display,omitempty"`
	Id             *openapi_types.UUID `json:"id,omitempty"`
	Name           string              `json:"name"`
	PowerfeedCount *int                `json:"powerfeed_count,omitempty"`
	Url            *string             `json:"url,omitempty"`
}

// NestedPowerPanelRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPanelRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedPowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPort struct {
	Cable  *openapi_types.UUID `json:"cable"`
	Device *NestedDevice       `json:"device,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPowerPortRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPortRequest struct {
	Cable *openapi_types.UUID `json:"cable"`
	Name  *string             `json:"name,omitempty"`
}

// NestedPowerPortTemplate Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPortTemplate struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPowerPortTemplateRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPowerPortTemplateRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedPrefix Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPrefix struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Family  *int                `json:"family,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Prefix  string              `json:"prefix"`
	Url     *string             `json:"url,omitempty"`
}

// NestedPrefixRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedPrefixRequest struct {
	Prefix *string `json:"prefix,omitempty"`
}

// NestedProvider Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedProvider struct {
	CircuitCount *int `json:"circuit_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedProviderLCM Nested serializer for the provider class.
type NestedProviderLCM struct {
	Comments    *string `json:"comments,omitempty"`
	Description *string `json:"description,omitempty"`

	// Display Human friendly display value
	Display         *string              `json:"display,omitempty"`
	Email           *openapi_types.Email `json:"email,omitempty"`
	Id              *openapi_types.UUID  `json:"id,omitempty"`
	Name            string               `json:"name"`
	Phone           *string              `json:"phone,omitempty"`
	PhysicalAddress *string              `json:"physical_address,omitempty"`
}

// NestedProviderLCMRequest Nested serializer for the provider class.
type NestedProviderLCMRequest struct {
	Comments        *string              `json:"comments,omitempty"`
	Description     *string              `json:"description,omitempty"`
	Email           *openapi_types.Email `json:"email,omitempty"`
	Name            *string              `json:"name,omitempty"`
	Phone           *string              `json:"phone,omitempty"`
	PhysicalAddress *string              `json:"physical_address,omitempty"`
}

// NestedProviderNetwork Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedProviderNetwork struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedProviderNetworkRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedProviderNetworkRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedProviderRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedProviderRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRIR Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRIR struct {
	AggregateCount *int `json:"aggregate_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedRIRRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRIRRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRack Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRack struct {
	DeviceCount *int `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedRackGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRackGroup struct {
	Depth *int `json:"_depth,omitempty"`

	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	RackCount *int                `json:"rack_count,omitempty"`
	Slug      *string             `json:"slug,omitempty"`
	Url       *string             `json:"url,omitempty"`
}

// NestedRackGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRackGroupRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRackRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRackRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedRackRole Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRackRole struct {
	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	RackCount *int                `json:"rack_count,omitempty"`
	Slug      *string             `json:"slug,omitempty"`
	Url       *string             `json:"url,omitempty"`
}

// NestedRackRoleRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRackRoleRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRearPortTemplate Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRearPortTemplate struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedRearPortTemplateRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRearPortTemplateRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedRegion Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRegion struct {
	Depth *int `json:"_depth,omitempty"`

	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	SiteCount *int                `json:"site_count,omitempty"`
	Slug      *string             `json:"slug,omitempty"`
	Url       *string             `json:"url,omitempty"`
}

// NestedRegionRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRegionRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRelationship Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRelationship struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Name Name of the relationship as displayed to users
	Name string `json:"name"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`
	Url  *string `json:"url,omitempty"`
}

// NestedRelationshipRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRelationshipRequest struct {
	// Name Name of the relationship as displayed to users
	Name *string `json:"name,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`
}

// NestedRole Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRole struct {
	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Name        string              `json:"name"`
	PrefixCount *int                `json:"prefix_count,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
	VlanCount   *int                `json:"vlan_count,omitempty"`
}

// NestedRoleRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedRoleRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedRoutingInstance Nested/brief serializer for PeerEndpoint.
type NestedRoutingInstance struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedScheduledJob This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NestedScheduledJob struct {
	// Crontab Cronjob syntax string for custom scheduling
	Crontab *string `json:"crontab,omitempty"`

	// Display Human friendly display value
	Display   *string                         `json:"display,omitempty"`
	Id        *openapi_types.UUID             `json:"id,omitempty"`
	Interval  JobExecutionTypeIntervalChoices `json:"interval"`
	Name      *string                         `json:"name,omitempty"`
	StartTime *time.Time                      `json:"start_time,omitempty"`
	Url       *string                         `json:"url,omitempty"`
}

// NestedScheduledJobRequest This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NestedScheduledJobRequest struct {
	// Crontab Cronjob syntax string for custom scheduling
	Crontab   *string                         `json:"crontab,omitempty"`
	Interval  JobExecutionTypeIntervalChoices `json:"interval"`
	Name      *string                         `json:"name,omitempty"`
	StartTime *time.Time                      `json:"start_time,omitempty"`
}

// NestedSecret Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSecret struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedSecretRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSecretRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedSecretsGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSecretsGroup struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedSecretsGroupAssociation Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSecretsGroupAssociation struct {
	AccessType AccessTypeEnum `json:"access_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Secret Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Secret     NestedSecret   `json:"secret"`
	SecretType SecretTypeEnum `json:"secret_type"`
	Url        *string        `json:"url,omitempty"`
}

// NestedSecretsGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSecretsGroupRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedSite Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSite struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedSiteRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedSiteRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedSoftwareLCM Nested/brief serializer for SoftwareLCM.
type NestedSoftwareLCM struct {
	DevicePlatform *openapi_types.UUID `json:"device_platform,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	EndOfSupport *openapi_types.Date `json:"end_of_support"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	Url          *string             `json:"url,omitempty"`
	Version      string              `json:"version"`
}

// NestedSoftwareLCMRequest Nested/brief serializer for SoftwareLCM.
type NestedSoftwareLCMRequest struct {
	EndOfSupport *openapi_types.Date `json:"end_of_support"`
	Version      *string             `json:"version,omitempty"`
}

// NestedTenant Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedTenant struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Slug    *string             `json:"slug,omitempty"`
	Url     *string             `json:"url,omitempty"`
}

// NestedTenantGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedTenantGroup struct {
	Depth *int `json:"_depth,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Name        string              `json:"name"`
	Slug        *string             `json:"slug,omitempty"`
	TenantCount *int                `json:"tenant_count,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// NestedTenantGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedTenantGroupRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedTenantRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedTenantRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedUser Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedUser struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Url     *string             `json:"url,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username string `json:"username"`
}

// NestedUserRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedUserRequest struct {
	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username *string `json:"username,omitempty"`
}

// NestedVLAN Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVLAN struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
	Vid     int                 `json:"vid"`
}

// NestedVLANGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVLANGroup struct {
	// Display Human friendly display value
	Display   *string             `json:"display,omitempty"`
	Id        *openapi_types.UUID `json:"id,omitempty"`
	Name      string              `json:"name"`
	Slug      *string             `json:"slug,omitempty"`
	Url       *string             `json:"url,omitempty"`
	VlanCount *int                `json:"vlan_count,omitempty"`
}

// NestedVLANGroupRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVLANGroupRequest struct {
	Name *string `json:"name,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// NestedVLANRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVLANRequest struct {
	Name *string `json:"name,omitempty"`
	Vid  *int    `json:"vid,omitempty"`
}

// NestedVMInterface Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVMInterface struct {
	// Display Human friendly display value
	Display        *string               `json:"display,omitempty"`
	Id             *openapi_types.UUID   `json:"id,omitempty"`
	Name           string                `json:"name"`
	Url            *string               `json:"url,omitempty"`
	VirtualMachine *NestedVirtualMachine `json:"virtual_machine,omitempty"`
}

// NestedVMInterfaceRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVMInterfaceRequest struct {
	Name *string `json:"name,omitempty"`
}

// NestedVRF Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVRF struct {
	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Name        string              `json:"name"`
	PrefixCount *int                `json:"prefix_count,omitempty"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd  *string `json:"rd"`
	Url *string `json:"url,omitempty"`
}

// NestedVRFRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVRFRequest struct {
	Name *string `json:"name,omitempty"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd *string `json:"rd"`
}

// NestedVirtualChassis Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVirtualChassis struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Master Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Master      NestedDevice `json:"master"`
	MemberCount *int         `json:"member_count,omitempty"`
	Name        string       `json:"name"`
	Url         *string      `json:"url,omitempty"`
}

// NestedVirtualChassisRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVirtualChassisRequest struct {
	// Master Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Master *NestedDeviceRequest `json:"master,omitempty"`
	Name   *string              `json:"name,omitempty"`
}

// NestedVirtualMachine Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVirtualMachine struct {
	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Name    string              `json:"name"`
	Url     *string             `json:"url,omitempty"`
}

// NestedVirtualMachineRequest Returns a nested representation of an object on read, but accepts either the nested representation or the
// primary key value on write operations.
type NestedVirtualMachineRequest struct {
	Name *string `json:"name,omitempty"`
}

// Note This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type Note struct {
	AssignedObject     *map[string]interface{} `json:"assigned_object"`
	AssignedObjectId   openapi_types.UUID      `json:"assigned_object_id"`
	AssignedObjectType string                  `json:"assigned_object_type"`
	Created            *openapi_types.Date     `json:"created"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Note        string              `json:"note"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
	User        *NestedUser         `json:"user,omitempty"`
	UserName    *string             `json:"user_name,omitempty"`
}

// NoteInputRequest defines model for NoteInputRequest.
type NoteInputRequest struct {
	Note string `json:"note"`
}

// NoteRequest This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type NoteRequest struct {
	AssignedObjectId   openapi_types.UUID `json:"assigned_object_id"`
	AssignedObjectType string             `json:"assigned_object_type"`
	Note               string             `json:"note"`
	Slug               *string            `json:"slug,omitempty"`
}

// NotificationSource Serializer for NotificationSource records.
type NotificationSource struct {
	// AttachAllProviders Attach all the Providers to this Notification Source
	AttachAllProviders *bool               `json:"attach_all_providers,omitempty"`
	Id                 *openapi_types.UUID `json:"id,omitempty"`

	// Name Notification Source Name as defined in configuration file.
	Name      string           `json:"name"`
	Providers []NestedProvider `json:"providers"`
	Slug      string           `json:"slug"`
	Url       *string          `json:"url,omitempty"`
}

// NullEnum defines model for NullEnum.
type NullEnum = interface{}

// ObjectChange This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type ObjectChange struct {
	Action *struct {
		Label *ObjectChangeActionLabel `json:"label,omitempty"`
		Value *ObjectChangeActionValue `json:"value,omitempty"`
	} `json:"action,omitempty"`
	ChangedObject     *map[string]interface{} `json:"changed_object"`
	ChangedObjectId   openapi_types.UUID      `json:"changed_object_id"`
	ChangedObjectType *string                 `json:"changed_object_type,omitempty"`

	// Display Human friendly display value
	Display    *string                 `json:"display,omitempty"`
	Id         *openapi_types.UUID     `json:"id,omitempty"`
	ObjectData *map[string]interface{} `json:"object_data,omitempty"`
	RequestId  *openapi_types.UUID     `json:"request_id,omitempty"`
	Time       *time.Time              `json:"time,omitempty"`
	Url        *string                 `json:"url,omitempty"`
	User       *NestedUser             `json:"user,omitempty"`
	UserName   *string                 `json:"user_name,omitempty"`
}

// ObjectChangeActionLabel defines model for ObjectChange.Action.Label.
type ObjectChangeActionLabel string

// ObjectChangeActionValue defines model for ObjectChange.Action.Value.
type ObjectChangeActionValue string

// ObjectPermission Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type ObjectPermission struct {
	// Actions The list of actions granted by this permission
	Actions map[string]interface{} `json:"actions"`

	// Constraints Queryset filter matching the applicable objects of the selected type(s)
	Constraints *map[string]interface{} `json:"constraints"`
	Description *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Enabled *bool   `json:"enabled,omitempty"`
	Groups  *[]struct {
		// Display Human friendly display value
		Display *string `json:"display,omitempty"`
		Id      *int    `json:"id,omitempty"`
		Name    string  `json:"name"`
		Url     *string `json:"url,omitempty"`
	} `json:"groups,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Name        string              `json:"name"`
	ObjectTypes []string            `json:"object_types"`
	Url         *string             `json:"url,omitempty"`
	Users       *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Url     *string             `json:"url,omitempty"`

		// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
		Username string `json:"username"`
	} `json:"users,omitempty"`
}

// OnboardingTask Serializer for the OnboardingTask model.
type OnboardingTask struct {
	// CreatedDevice Created device name
	CreatedDevice *string `json:"created_device,omitempty"`

	// DeviceType Nautobot device type 'slug' value
	DeviceType *string `json:"device_type,omitempty"`

	// FailedReason Failure reason
	FailedReason *string             `json:"failed_reason,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`

	// IpAddress IP Address to reach device
	IpAddress string `json:"ip_address"`

	// Message Status message
	Message *string `json:"message,omitempty"`

	// Platform Nautobot Platform 'slug' value
	Platform *string `json:"platform,omitempty"`

	// Port Device PORT to check for online
	Port *int `json:"port,omitempty"`

	// Role Nautobot device role 'slug' value
	Role *string `json:"role,omitempty"`

	// Site Nautobot site 'slug' value
	Site string `json:"site"`

	// Status Onboarding Status
	Status *string `json:"status,omitempty"`

	// Timeout Timeout (sec) for device connect
	Timeout *int `json:"timeout,omitempty"`
}

// OnboardingTaskRequest Serializer for the OnboardingTask model.
type OnboardingTaskRequest struct {
	// DeviceType Nautobot device type 'slug' value
	DeviceType *string `json:"device_type,omitempty"`

	// IpAddress IP Address to reach device
	IpAddress string `json:"ip_address"`

	// Password Device password
	Password *string `json:"password,omitempty"`

	// Platform Nautobot Platform 'slug' value
	Platform *string `json:"platform,omitempty"`

	// Port Device PORT to check for online
	Port *int `json:"port,omitempty"`

	// Role Nautobot device role 'slug' value
	Role *string `json:"role,omitempty"`

	// Secret Device secret password
	Secret *string `json:"secret,omitempty"`

	// Site Nautobot site 'slug' value
	Site string `json:"site"`

	// Timeout Timeout (sec) for device connect
	Timeout *int `json:"timeout,omitempty"`

	// Username Device username
	Username *string `json:"username,omitempty"`
}

// OperatorEnum defines model for OperatorEnum.
type OperatorEnum string

// OuterUnitEnum defines model for OuterUnitEnum.
type OuterUnitEnum string

// PaginatedAccessGrantList defines model for PaginatedAccessGrantList.
type PaginatedAccessGrantList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]AccessGrant `json:"results,omitempty"`
}

// PaginatedAddressFamilyList defines model for PaginatedAddressFamilyList.
type PaginatedAddressFamilyList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]AddressFamily `json:"results,omitempty"`
}

// PaginatedAddressObjectGroupList defines model for PaginatedAddressObjectGroupList.
type PaginatedAddressObjectGroupList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]AddressObjectGroup `json:"results,omitempty"`
}

// PaginatedAddressObjectList defines model for PaginatedAddressObjectList.
type PaginatedAddressObjectList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]AddressObject `json:"results,omitempty"`
}

// PaginatedAggregateList defines model for PaginatedAggregateList.
type PaginatedAggregateList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]Aggregate `json:"results,omitempty"`
}

// PaginatedAutonomousSystemList defines model for PaginatedAutonomousSystemList.
type PaginatedAutonomousSystemList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]AutonomousSystem `json:"results,omitempty"`
}

// PaginatedAvailableIPList defines model for PaginatedAvailableIPList.
type PaginatedAvailableIPList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]AvailableIP `json:"results,omitempty"`
}

// PaginatedAvailablePrefixList defines model for PaginatedAvailablePrefixList.
type PaginatedAvailablePrefixList struct {
	Count    *int               `json:"count,omitempty"`
	Next     *string            `json:"next"`
	Previous *string            `json:"previous"`
	Results  *[]AvailablePrefix `json:"results,omitempty"`
}

// PaginatedBGPRoutingInstanceList defines model for PaginatedBGPRoutingInstanceList.
type PaginatedBGPRoutingInstanceList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]BGPRoutingInstance `json:"results,omitempty"`
}

// PaginatedCVELCMList defines model for PaginatedCVELCMList.
type PaginatedCVELCMList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]CVELCM `json:"results,omitempty"`
}

// PaginatedCableList defines model for PaginatedCableList.
type PaginatedCableList struct {
	Count    *int     `json:"count,omitempty"`
	Next     *string  `json:"next"`
	Previous *string  `json:"previous"`
	Results  *[]Cable `json:"results,omitempty"`
}

// PaginatedCapircaPolicyList defines model for PaginatedCapircaPolicyList.
type PaginatedCapircaPolicyList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]CapircaPolicy `json:"results,omitempty"`
}

// PaginatedCircuitList defines model for PaginatedCircuitList.
type PaginatedCircuitList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]Circuit `json:"results,omitempty"`
}

// PaginatedCircuitMaintenanceCircuitImpactList defines model for PaginatedCircuitMaintenanceCircuitImpactList.
type PaginatedCircuitMaintenanceCircuitImpactList struct {
	Count    *int                               `json:"count,omitempty"`
	Next     *string                            `json:"next"`
	Previous *string                            `json:"previous"`
	Results  *[]CircuitMaintenanceCircuitImpact `json:"results,omitempty"`
}

// PaginatedCircuitMaintenanceList defines model for PaginatedCircuitMaintenanceList.
type PaginatedCircuitMaintenanceList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]CircuitMaintenance `json:"results,omitempty"`
}

// PaginatedCircuitTerminationList defines model for PaginatedCircuitTerminationList.
type PaginatedCircuitTerminationList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]CircuitTermination `json:"results,omitempty"`
}

// PaginatedCircuitTypeList defines model for PaginatedCircuitTypeList.
type PaginatedCircuitTypeList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]CircuitType `json:"results,omitempty"`
}

// PaginatedClusterGroupList defines model for PaginatedClusterGroupList.
type PaginatedClusterGroupList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]ClusterGroup `json:"results,omitempty"`
}

// PaginatedClusterList defines model for PaginatedClusterList.
type PaginatedClusterList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]Cluster `json:"results,omitempty"`
}

// PaginatedClusterTypeList defines model for PaginatedClusterTypeList.
type PaginatedClusterTypeList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]ClusterType `json:"results,omitempty"`
}

// PaginatedCommandTokenList defines model for PaginatedCommandTokenList.
type PaginatedCommandTokenList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]CommandToken `json:"results,omitempty"`
}

// PaginatedComplianceFeatureList defines model for PaginatedComplianceFeatureList.
type PaginatedComplianceFeatureList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]ComplianceFeature `json:"results,omitempty"`
}

// PaginatedComplianceRuleList defines model for PaginatedComplianceRuleList.
type PaginatedComplianceRuleList struct {
	Count    *int              `json:"count,omitempty"`
	Next     *string           `json:"next"`
	Previous *string           `json:"previous"`
	Results  *[]ComplianceRule `json:"results,omitempty"`
}

// PaginatedComputedFieldList defines model for PaginatedComputedFieldList.
type PaginatedComputedFieldList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]ComputedField `json:"results,omitempty"`
}

// PaginatedConfigComplianceList defines model for PaginatedConfigComplianceList.
type PaginatedConfigComplianceList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]ConfigCompliance `json:"results,omitempty"`
}

// PaginatedConfigContextList defines model for PaginatedConfigContextList.
type PaginatedConfigContextList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]ConfigContext `json:"results,omitempty"`
}

// PaginatedConfigContextSchemaList defines model for PaginatedConfigContextSchemaList.
type PaginatedConfigContextSchemaList struct {
	Count    *int                   `json:"count,omitempty"`
	Next     *string                `json:"next"`
	Previous *string                `json:"previous"`
	Results  *[]ConfigContextSchema `json:"results,omitempty"`
}

// PaginatedConfigRemoveList defines model for PaginatedConfigRemoveList.
type PaginatedConfigRemoveList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]ConfigRemove `json:"results,omitempty"`
}

// PaginatedConfigReplaceList defines model for PaginatedConfigReplaceList.
type PaginatedConfigReplaceList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]ConfigReplace `json:"results,omitempty"`
}

// PaginatedConsolePortList defines model for PaginatedConsolePortList.
type PaginatedConsolePortList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]ConsolePort `json:"results,omitempty"`
}

// PaginatedConsolePortTemplateList defines model for PaginatedConsolePortTemplateList.
type PaginatedConsolePortTemplateList struct {
	Count    *int                   `json:"count,omitempty"`
	Next     *string                `json:"next"`
	Previous *string                `json:"previous"`
	Results  *[]ConsolePortTemplate `json:"results,omitempty"`
}

// PaginatedConsoleServerPortList defines model for PaginatedConsoleServerPortList.
type PaginatedConsoleServerPortList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]ConsoleServerPort `json:"results,omitempty"`
}

// PaginatedConsoleServerPortTemplateList defines model for PaginatedConsoleServerPortTemplateList.
type PaginatedConsoleServerPortTemplateList struct {
	Count    *int                         `json:"count,omitempty"`
	Next     *string                      `json:"next"`
	Previous *string                      `json:"previous"`
	Results  *[]ConsoleServerPortTemplate `json:"results,omitempty"`
}

// PaginatedContactLCMList defines model for PaginatedContactLCMList.
type PaginatedContactLCMList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]ContactLCM `json:"results,omitempty"`
}

// PaginatedContentTypeList defines model for PaginatedContentTypeList.
type PaginatedContentTypeList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]ContentType `json:"results,omitempty"`
}

// PaginatedContractLCMList defines model for PaginatedContractLCMList.
type PaginatedContractLCMList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]ContractLCM `json:"results,omitempty"`
}

// PaginatedCustomFieldChoiceList defines model for PaginatedCustomFieldChoiceList.
type PaginatedCustomFieldChoiceList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]CustomFieldChoice `json:"results,omitempty"`
}

// PaginatedCustomFieldSerializerVersion12List defines model for PaginatedCustomFieldSerializerVersion12List.
type PaginatedCustomFieldSerializerVersion12List struct {
	Count    *int                              `json:"count,omitempty"`
	Next     *string                           `json:"next"`
	Previous *string                           `json:"previous"`
	Results  *[]CustomFieldSerializerVersion12 `json:"results,omitempty"`
}

// PaginatedCustomLinkList defines model for PaginatedCustomLinkList.
type PaginatedCustomLinkList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]CustomLink `json:"results,omitempty"`
}

// PaginatedDeviceBayList defines model for PaginatedDeviceBayList.
type PaginatedDeviceBayList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]DeviceBay `json:"results,omitempty"`
}

// PaginatedDeviceBayTemplateList defines model for PaginatedDeviceBayTemplateList.
type PaginatedDeviceBayTemplateList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]DeviceBayTemplate `json:"results,omitempty"`
}

// PaginatedDeviceRedundancyGroupList defines model for PaginatedDeviceRedundancyGroupList.
type PaginatedDeviceRedundancyGroupList struct {
	Count    *int                     `json:"count,omitempty"`
	Next     *string                  `json:"next"`
	Previous *string                  `json:"previous"`
	Results  *[]DeviceRedundancyGroup `json:"results,omitempty"`
}

// PaginatedDeviceRoleList defines model for PaginatedDeviceRoleList.
type PaginatedDeviceRoleList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]DeviceRole `json:"results,omitempty"`
}

// PaginatedDeviceTypeList defines model for PaginatedDeviceTypeList.
type PaginatedDeviceTypeList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]DeviceType `json:"results,omitempty"`
}

// PaginatedDeviceWithConfigContextList defines model for PaginatedDeviceWithConfigContextList.
type PaginatedDeviceWithConfigContextList struct {
	Count    *int                       `json:"count,omitempty"`
	Next     *string                    `json:"next"`
	Previous *string                    `json:"previous"`
	Results  *[]DeviceWithConfigContext `json:"results,omitempty"`
}

// PaginatedDynamicGroupList defines model for PaginatedDynamicGroupList.
type PaginatedDynamicGroupList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]DynamicGroup `json:"results,omitempty"`
}

// PaginatedDynamicGroupMembershipList defines model for PaginatedDynamicGroupMembershipList.
type PaginatedDynamicGroupMembershipList struct {
	Count    *int                      `json:"count,omitempty"`
	Next     *string                   `json:"next"`
	Previous *string                   `json:"previous"`
	Results  *[]DynamicGroupMembership `json:"results,omitempty"`
}

// PaginatedExportTemplateList defines model for PaginatedExportTemplateList.
type PaginatedExportTemplateList struct {
	Count    *int              `json:"count,omitempty"`
	Next     *string           `json:"next"`
	Previous *string           `json:"previous"`
	Results  *[]ExportTemplate `json:"results,omitempty"`
}

// PaginatedFQDNList defines model for PaginatedFQDNList.
type PaginatedFQDNList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]FQDN `json:"results,omitempty"`
}

// PaginatedFrontPortList defines model for PaginatedFrontPortList.
type PaginatedFrontPortList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]FrontPort `json:"results,omitempty"`
}

// PaginatedFrontPortTemplateList defines model for PaginatedFrontPortTemplateList.
type PaginatedFrontPortTemplateList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]FrontPortTemplate `json:"results,omitempty"`
}

// PaginatedGitRepositoryList defines model for PaginatedGitRepositoryList.
type PaginatedGitRepositoryList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]GitRepository `json:"results,omitempty"`
}

// PaginatedGoldenConfigList defines model for PaginatedGoldenConfigList.
type PaginatedGoldenConfigList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]GoldenConfig `json:"results,omitempty"`
}

// PaginatedGoldenConfigSettingList defines model for PaginatedGoldenConfigSettingList.
type PaginatedGoldenConfigSettingList struct {
	Count    *int                   `json:"count,omitempty"`
	Next     *string                `json:"next"`
	Previous *string                `json:"previous"`
	Results  *[]GoldenConfigSetting `json:"results,omitempty"`
}

// PaginatedGraphQLQueryList defines model for PaginatedGraphQLQueryList.
type PaginatedGraphQLQueryList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]GraphQLQuery `json:"results,omitempty"`
}

// PaginatedGroupList defines model for PaginatedGroupList.
type PaginatedGroupList struct {
	Count    *int     `json:"count,omitempty"`
	Next     *string  `json:"next"`
	Previous *string  `json:"previous"`
	Results  *[]Group `json:"results,omitempty"`
}

// PaginatedHardwareLCMList defines model for PaginatedHardwareLCMList.
type PaginatedHardwareLCMList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]HardwareLCM `json:"results,omitempty"`
}

// PaginatedIPAddressList defines model for PaginatedIPAddressList.
type PaginatedIPAddressList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]IPAddress `json:"results,omitempty"`
}

// PaginatedIPRangeList defines model for PaginatedIPRangeList.
type PaginatedIPRangeList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]IPRange `json:"results,omitempty"`
}

// PaginatedImageAttachmentList defines model for PaginatedImageAttachmentList.
type PaginatedImageAttachmentList struct {
	Count    *int               `json:"count,omitempty"`
	Next     *string            `json:"next"`
	Previous *string            `json:"previous"`
	Results  *[]ImageAttachment `json:"results,omitempty"`
}

// PaginatedInterfaceConnectionList defines model for PaginatedInterfaceConnectionList.
type PaginatedInterfaceConnectionList struct {
	Count    *int                   `json:"count,omitempty"`
	Next     *string                `json:"next"`
	Previous *string                `json:"previous"`
	Results  *[]InterfaceConnection `json:"results,omitempty"`
}

// PaginatedInterfaceSerializerVersion12List defines model for PaginatedInterfaceSerializerVersion12List.
type PaginatedInterfaceSerializerVersion12List struct {
	Count    *int                            `json:"count,omitempty"`
	Next     *string                         `json:"next"`
	Previous *string                         `json:"previous"`
	Results  *[]InterfaceSerializerVersion12 `json:"results,omitempty"`
}

// PaginatedInterfaceTemplateList defines model for PaginatedInterfaceTemplateList.
type PaginatedInterfaceTemplateList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]InterfaceTemplate `json:"results,omitempty"`
}

// PaginatedInventoryItemList defines model for PaginatedInventoryItemList.
type PaginatedInventoryItemList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]InventoryItem `json:"results,omitempty"`
}

// PaginatedJobHookList defines model for PaginatedJobHookList.
type PaginatedJobHookList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]JobHook `json:"results,omitempty"`
}

// PaginatedJobList defines model for PaginatedJobList.
type PaginatedJobList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Job  `json:"results,omitempty"`
}

// PaginatedJobLogEntryList defines model for PaginatedJobLogEntryList.
type PaginatedJobLogEntryList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]JobLogEntry `json:"results,omitempty"`
}

// PaginatedJobResultList defines model for PaginatedJobResultList.
type PaginatedJobResultList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]JobResult `json:"results,omitempty"`
}

// PaginatedJobVariableList defines model for PaginatedJobVariableList.
type PaginatedJobVariableList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]JobVariable `json:"results,omitempty"`
}

// PaginatedLocationList defines model for PaginatedLocationList.
type PaginatedLocationList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]Location `json:"results,omitempty"`
}

// PaginatedLocationTypeList defines model for PaginatedLocationTypeList.
type PaginatedLocationTypeList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]LocationType `json:"results,omitempty"`
}

// PaginatedManufacturerList defines model for PaginatedManufacturerList.
type PaginatedManufacturerList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]Manufacturer `json:"results,omitempty"`
}

// PaginatedMinMaxValidationRuleList defines model for PaginatedMinMaxValidationRuleList.
type PaginatedMinMaxValidationRuleList struct {
	Count    *int                    `json:"count,omitempty"`
	Next     *string                 `json:"next"`
	Previous *string                 `json:"previous"`
	Results  *[]MinMaxValidationRule `json:"results,omitempty"`
}

// PaginatedNATPolicyList defines model for PaginatedNATPolicyList.
type PaginatedNATPolicyList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]NATPolicy `json:"results,omitempty"`
}

// PaginatedNATPolicyRuleList defines model for PaginatedNATPolicyRuleList.
type PaginatedNATPolicyRuleList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]NATPolicyRule `json:"results,omitempty"`
}

// PaginatedNoteList defines model for PaginatedNoteList.
type PaginatedNoteList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Note `json:"results,omitempty"`
}

// PaginatedNotificationSourceList defines model for PaginatedNotificationSourceList.
type PaginatedNotificationSourceList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]NotificationSource `json:"results,omitempty"`
}

// PaginatedObjectChangeList defines model for PaginatedObjectChangeList.
type PaginatedObjectChangeList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]ObjectChange `json:"results,omitempty"`
}

// PaginatedObjectPermissionList defines model for PaginatedObjectPermissionList.
type PaginatedObjectPermissionList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]ObjectPermission `json:"results,omitempty"`
}

// PaginatedOnboardingTaskList defines model for PaginatedOnboardingTaskList.
type PaginatedOnboardingTaskList struct {
	Count    *int              `json:"count,omitempty"`
	Next     *string           `json:"next"`
	Previous *string           `json:"previous"`
	Results  *[]OnboardingTask `json:"results,omitempty"`
}

// PaginatedPeerEndpointList defines model for PaginatedPeerEndpointList.
type PaginatedPeerEndpointList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]PeerEndpoint `json:"results,omitempty"`
}

// PaginatedPeerGroupList defines model for PaginatedPeerGroupList.
type PaginatedPeerGroupList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]PeerGroup `json:"results,omitempty"`
}

// PaginatedPeerGroupTemplateList defines model for PaginatedPeerGroupTemplateList.
type PaginatedPeerGroupTemplateList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]PeerGroupTemplate `json:"results,omitempty"`
}

// PaginatedPeeringList defines model for PaginatedPeeringList.
type PaginatedPeeringList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]Peering `json:"results,omitempty"`
}

// PaginatedPeeringRoleList defines model for PaginatedPeeringRoleList.
type PaginatedPeeringRoleList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]PeeringRole `json:"results,omitempty"`
}

// PaginatedPlatformList defines model for PaginatedPlatformList.
type PaginatedPlatformList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]Platform `json:"results,omitempty"`
}

// PaginatedPolicyList defines model for PaginatedPolicyList.
type PaginatedPolicyList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Policy `json:"results,omitempty"`
}

// PaginatedPolicyRuleList defines model for PaginatedPolicyRuleList.
type PaginatedPolicyRuleList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]PolicyRule `json:"results,omitempty"`
}

// PaginatedPowerFeedList defines model for PaginatedPowerFeedList.
type PaginatedPowerFeedList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]PowerFeed `json:"results,omitempty"`
}

// PaginatedPowerOutletList defines model for PaginatedPowerOutletList.
type PaginatedPowerOutletList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]PowerOutlet `json:"results,omitempty"`
}

// PaginatedPowerOutletTemplateList defines model for PaginatedPowerOutletTemplateList.
type PaginatedPowerOutletTemplateList struct {
	Count    *int                   `json:"count,omitempty"`
	Next     *string                `json:"next"`
	Previous *string                `json:"previous"`
	Results  *[]PowerOutletTemplate `json:"results,omitempty"`
}

// PaginatedPowerPanelList defines model for PaginatedPowerPanelList.
type PaginatedPowerPanelList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]PowerPanel `json:"results,omitempty"`
}

// PaginatedPowerPortList defines model for PaginatedPowerPortList.
type PaginatedPowerPortList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]PowerPort `json:"results,omitempty"`
}

// PaginatedPowerPortTemplateList defines model for PaginatedPowerPortTemplateList.
type PaginatedPowerPortTemplateList struct {
	Count    *int                 `json:"count,omitempty"`
	Next     *string              `json:"next"`
	Previous *string              `json:"previous"`
	Results  *[]PowerPortTemplate `json:"results,omitempty"`
}

// PaginatedPrefixList defines model for PaginatedPrefixList.
type PaginatedPrefixList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Prefix `json:"results,omitempty"`
}

// PaginatedProviderLCMList defines model for PaginatedProviderLCMList.
type PaginatedProviderLCMList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]ProviderLCM `json:"results,omitempty"`
}

// PaginatedProviderList defines model for PaginatedProviderList.
type PaginatedProviderList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]Provider `json:"results,omitempty"`
}

// PaginatedProviderNetworkList defines model for PaginatedProviderNetworkList.
type PaginatedProviderNetworkList struct {
	Count    *int               `json:"count,omitempty"`
	Next     *string            `json:"next"`
	Previous *string            `json:"previous"`
	Results  *[]ProviderNetwork `json:"results,omitempty"`
}

// PaginatedRIRList defines model for PaginatedRIRList.
type PaginatedRIRList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]RIR  `json:"results,omitempty"`
}

// PaginatedRackGroupList defines model for PaginatedRackGroupList.
type PaginatedRackGroupList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]RackGroup `json:"results,omitempty"`
}

// PaginatedRackList defines model for PaginatedRackList.
type PaginatedRackList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Rack `json:"results,omitempty"`
}

// PaginatedRackReservationList defines model for PaginatedRackReservationList.
type PaginatedRackReservationList struct {
	Count    *int               `json:"count,omitempty"`
	Next     *string            `json:"next"`
	Previous *string            `json:"previous"`
	Results  *[]RackReservation `json:"results,omitempty"`
}

// PaginatedRackRoleList defines model for PaginatedRackRoleList.
type PaginatedRackRoleList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]RackRole `json:"results,omitempty"`
}

// PaginatedRackUnitList defines model for PaginatedRackUnitList.
type PaginatedRackUnitList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]RackUnit `json:"results,omitempty"`
}

// PaginatedRearPortList defines model for PaginatedRearPortList.
type PaginatedRearPortList struct {
	Count    *int        `json:"count,omitempty"`
	Next     *string     `json:"next"`
	Previous *string     `json:"previous"`
	Results  *[]RearPort `json:"results,omitempty"`
}

// PaginatedRearPortTemplateList defines model for PaginatedRearPortTemplateList.
type PaginatedRearPortTemplateList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]RearPortTemplate `json:"results,omitempty"`
}

// PaginatedRegionList defines model for PaginatedRegionList.
type PaginatedRegionList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Region `json:"results,omitempty"`
}

// PaginatedRegularExpressionValidationRuleList defines model for PaginatedRegularExpressionValidationRuleList.
type PaginatedRegularExpressionValidationRuleList struct {
	Count    *int                               `json:"count,omitempty"`
	Next     *string                            `json:"next"`
	Previous *string                            `json:"previous"`
	Results  *[]RegularExpressionValidationRule `json:"results,omitempty"`
}

// PaginatedRelationshipAssociationList defines model for PaginatedRelationshipAssociationList.
type PaginatedRelationshipAssociationList struct {
	Count    *int                       `json:"count,omitempty"`
	Next     *string                    `json:"next"`
	Previous *string                    `json:"previous"`
	Results  *[]RelationshipAssociation `json:"results,omitempty"`
}

// PaginatedRelationshipList defines model for PaginatedRelationshipList.
type PaginatedRelationshipList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]Relationship `json:"results,omitempty"`
}

// PaginatedRoleList defines model for PaginatedRoleList.
type PaginatedRoleList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Role `json:"results,omitempty"`
}

// PaginatedRouteTargetList defines model for PaginatedRouteTargetList.
type PaginatedRouteTargetList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]RouteTarget `json:"results,omitempty"`
}

// PaginatedScheduledJobList defines model for PaginatedScheduledJobList.
type PaginatedScheduledJobList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]ScheduledJob `json:"results,omitempty"`
}

// PaginatedSecretList defines model for PaginatedSecretList.
type PaginatedSecretList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Secret `json:"results,omitempty"`
}

// PaginatedSecretsGroupAssociationList defines model for PaginatedSecretsGroupAssociationList.
type PaginatedSecretsGroupAssociationList struct {
	Count    *int                       `json:"count,omitempty"`
	Next     *string                    `json:"next"`
	Previous *string                    `json:"previous"`
	Results  *[]SecretsGroupAssociation `json:"results,omitempty"`
}

// PaginatedSecretsGroupList defines model for PaginatedSecretsGroupList.
type PaginatedSecretsGroupList struct {
	Count    *int            `json:"count,omitempty"`
	Next     *string         `json:"next"`
	Previous *string         `json:"previous"`
	Results  *[]SecretsGroup `json:"results,omitempty"`
}

// PaginatedServiceList defines model for PaginatedServiceList.
type PaginatedServiceList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]Service `json:"results,omitempty"`
}

// PaginatedServiceObjectGroupList defines model for PaginatedServiceObjectGroupList.
type PaginatedServiceObjectGroupList struct {
	Count    *int                  `json:"count,omitempty"`
	Next     *string               `json:"next"`
	Previous *string               `json:"previous"`
	Results  *[]ServiceObjectGroup `json:"results,omitempty"`
}

// PaginatedServiceObjectList defines model for PaginatedServiceObjectList.
type PaginatedServiceObjectList struct {
	Count    *int             `json:"count,omitempty"`
	Next     *string          `json:"next"`
	Previous *string          `json:"previous"`
	Results  *[]ServiceObject `json:"results,omitempty"`
}

// PaginatedSiteList defines model for PaginatedSiteList.
type PaginatedSiteList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Site `json:"results,omitempty"`
}

// PaginatedSoftwareImageLCMList defines model for PaginatedSoftwareImageLCMList.
type PaginatedSoftwareImageLCMList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]SoftwareImageLCM `json:"results,omitempty"`
}

// PaginatedSoftwareLCMList defines model for PaginatedSoftwareLCMList.
type PaginatedSoftwareLCMList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]SoftwareLCM `json:"results,omitempty"`
}

// PaginatedStatusList defines model for PaginatedStatusList.
type PaginatedStatusList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Status `json:"results,omitempty"`
}

// PaginatedTagSerializerVersion13List defines model for PaginatedTagSerializerVersion13List.
type PaginatedTagSerializerVersion13List struct {
	Count    *int                      `json:"count,omitempty"`
	Next     *string                   `json:"next"`
	Previous *string                   `json:"previous"`
	Results  *[]TagSerializerVersion13 `json:"results,omitempty"`
}

// PaginatedTenantGroupList defines model for PaginatedTenantGroupList.
type PaginatedTenantGroupList struct {
	Count    *int           `json:"count,omitempty"`
	Next     *string        `json:"next"`
	Previous *string        `json:"previous"`
	Results  *[]TenantGroup `json:"results,omitempty"`
}

// PaginatedTenantList defines model for PaginatedTenantList.
type PaginatedTenantList struct {
	Count    *int      `json:"count,omitempty"`
	Next     *string   `json:"next"`
	Previous *string   `json:"previous"`
	Results  *[]Tenant `json:"results,omitempty"`
}

// PaginatedTokenList defines model for PaginatedTokenList.
type PaginatedTokenList struct {
	Count    *int     `json:"count,omitempty"`
	Next     *string  `json:"next"`
	Previous *string  `json:"previous"`
	Results  *[]Token `json:"results,omitempty"`
}

// PaginatedUserList defines model for PaginatedUserList.
type PaginatedUserList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]User `json:"results,omitempty"`
}

// PaginatedUserObjectGroupList defines model for PaginatedUserObjectGroupList.
type PaginatedUserObjectGroupList struct {
	Count    *int               `json:"count,omitempty"`
	Next     *string            `json:"next"`
	Previous *string            `json:"previous"`
	Results  *[]UserObjectGroup `json:"results,omitempty"`
}

// PaginatedUserObjectList defines model for PaginatedUserObjectList.
type PaginatedUserObjectList struct {
	Count    *int          `json:"count,omitempty"`
	Next     *string       `json:"next"`
	Previous *string       `json:"previous"`
	Results  *[]UserObject `json:"results,omitempty"`
}

// PaginatedVLANGroupList defines model for PaginatedVLANGroupList.
type PaginatedVLANGroupList struct {
	Count    *int         `json:"count,omitempty"`
	Next     *string      `json:"next"`
	Previous *string      `json:"previous"`
	Results  *[]VLANGroup `json:"results,omitempty"`
}

// PaginatedVLANList defines model for PaginatedVLANList.
type PaginatedVLANList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]VLAN `json:"results,omitempty"`
}

// PaginatedVMInterfaceSerializerVersion12List defines model for PaginatedVMInterfaceSerializerVersion12List.
type PaginatedVMInterfaceSerializerVersion12List struct {
	Count    *int                              `json:"count,omitempty"`
	Next     *string                           `json:"next"`
	Previous *string                           `json:"previous"`
	Results  *[]VMInterfaceSerializerVersion12 `json:"results,omitempty"`
}

// PaginatedVRFList defines model for PaginatedVRFList.
type PaginatedVRFList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]VRF  `json:"results,omitempty"`
}

// PaginatedValidatedSoftwareLCMList defines model for PaginatedValidatedSoftwareLCMList.
type PaginatedValidatedSoftwareLCMList struct {
	Count    *int                    `json:"count,omitempty"`
	Next     *string                 `json:"next"`
	Previous *string                 `json:"previous"`
	Results  *[]ValidatedSoftwareLCM `json:"results,omitempty"`
}

// PaginatedVirtualChassisList defines model for PaginatedVirtualChassisList.
type PaginatedVirtualChassisList struct {
	Count    *int              `json:"count,omitempty"`
	Next     *string           `json:"next"`
	Previous *string           `json:"previous"`
	Results  *[]VirtualChassis `json:"results,omitempty"`
}

// PaginatedVirtualMachineWithConfigContextList defines model for PaginatedVirtualMachineWithConfigContextList.
type PaginatedVirtualMachineWithConfigContextList struct {
	Count    *int                               `json:"count,omitempty"`
	Next     *string                            `json:"next"`
	Previous *string                            `json:"previous"`
	Results  *[]VirtualMachineWithConfigContext `json:"results,omitempty"`
}

// PaginatedVulnerabilityLCMList defines model for PaginatedVulnerabilityLCMList.
type PaginatedVulnerabilityLCMList struct {
	Count    *int                `json:"count,omitempty"`
	Next     *string             `json:"next"`
	Previous *string             `json:"previous"`
	Results  *[]VulnerabilityLCM `json:"results,omitempty"`
}

// PaginatedWebhookList defines model for PaginatedWebhookList.
type PaginatedWebhookList struct {
	Count    *int       `json:"count,omitempty"`
	Next     *string    `json:"next"`
	Previous *string    `json:"previous"`
	Results  *[]Webhook `json:"results,omitempty"`
}

// PaginatedZoneList defines model for PaginatedZoneList.
type PaginatedZoneList struct {
	Count    *int    `json:"count,omitempty"`
	Next     *string `json:"next"`
	Previous *string `json:"previous"`
	Results  *[]Zone `json:"results,omitempty"`
}

// PatchedAccessGrantRequest API serializer for interacting with AccessGrant objects.
type PatchedAccessGrantRequest struct {
	// Command Enter <tt>*</tt> to grant access to all commands
	Command   *string        `json:"command,omitempty"`
	GrantType *GrantTypeEnum `json:"grant_type,omitempty"`

	// Name Organization name, channel name, or user name
	Name *string `json:"name,omitempty"`

	// Subcommand Enter <tt>*</tt> to grant access to all subcommands of the given command
	Subcommand *string `json:"subcommand,omitempty"`

	// Value Corresponding ID value to grant access to.<br>Enter <tt>*</tt> to grant access to all organizations, channels, or users
	Value *string `json:"value,omitempty"`
}

// PatchedBulkWritableAccessGrantRequest API serializer for interacting with AccessGrant objects.
type PatchedBulkWritableAccessGrantRequest struct {
	// Command Enter <tt>*</tt> to grant access to all commands
	Command   *string            `json:"command,omitempty"`
	GrantType *GrantTypeEnum     `json:"grant_type,omitempty"`
	Id        openapi_types.UUID `json:"id"`

	// Name Organization name, channel name, or user name
	Name *string `json:"name,omitempty"`

	// Subcommand Enter <tt>*</tt> to grant access to all subcommands of the given command
	Subcommand *string `json:"subcommand,omitempty"`

	// Value Corresponding ID value to grant access to.<br>Enter <tt>*</tt> to grant access to all organizations, channels, or users
	Value *string `json:"value,omitempty"`
}

// PatchedBulkWritableAddressFamilyRequest REST API serializer for AddressFamily records.
type PatchedBulkWritableAddressFamilyRequest struct {
	AfiSafi      *AfiSafiEnum            `json:"afi_safi,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	ExportPolicy *string                 `json:"export_policy,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	ImportPolicy *string                 `json:"import_policy,omitempty"`
	Vrf          *NestedVRFRequest       `json:"vrf"`
}

// PatchedBulkWritableAddressObjectGroupRequest AddressObjectGroup Serializer.
type PatchedBulkWritableAddressObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	AddressObjects  *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                               `json:"label,omitempty"`
				ObjectType *string                                                                                               `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                      `json:"tags,omitempty"`
	} `json:"address_objects,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Name Name descriptor for a group address objects.
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus defines model for PatchedBulkWritableAddressObjectGroupRequest.AddressObjects.Status.
type PatchedBulkWritableAddressObjectGroupRequestAddressObjectsStatus string

// PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableAddressObjectGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectRequest AddressObject Serializer.
type PatchedBulkWritableAddressObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Fqdn Nested serializer for FQDN.
	Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`
	Id   openapi_types.UUID `json:"id"`

	// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

	// IpRange Nested serializer for IPRange.
	IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

	// Name Name descriptor for an address object type.
	Name *string `json:"name,omitempty"`

	// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableAddressObjectRequest.relationships.destination.objects.Item.
type PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableAddressObjectRequest.relationships.peer.objects.Item.
type PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableAddressObjectRequest.relationships.source.objects.Item.
type PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAggregateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableAggregateRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	DateAdded     *openapi_types.Date     `json:"date_added"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Prefix        *string                 `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Rir Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rir    *NestedRIRRequest            `json:"rir,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableAggregateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableAggregateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableAggregateRequest.relationships.source.objects.Item.
type PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableAutonomousSystemRequest REST API serializer for AutonomousSystem records.
type PatchedBulkWritableAutonomousSystemRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                       `json:"asn,omitempty"`
	CustomFields *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description  *string                      `json:"description,omitempty"`
	Id           openapi_types.UUID           `json:"id"`
	Provider     *NestedProviderRequest       `json:"provider"`
	Status       *Status2a0Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableBGPRoutingInstanceRequest REST API serializer for Peering records.
type PatchedBulkWritableBGPRoutingInstanceRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Description      *string                        `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device   *NestedDeviceRequest    `json:"device,omitempty"`
	Id       openapi_types.UUID      `json:"id"`
	RouterId *NestedIPAddressRequest `json:"router_id"`
}

// PatchedBulkWritableCVELCMRequest REST API serializer for CVELCM records.
type PatchedBulkWritableCVELCMRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Cvss          *float64                `json:"cvss"`
	CvssV2        *float64                `json:"cvss_v2"`
	CvssV3        *float64                `json:"cvss_v3"`
	Description   *string                 `json:"description"`
	Fix           *string                 `json:"fix"`
	Id            openapi_types.UUID      `json:"id"`
	Link          *string                 `json:"link,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	PublishedDate *openapi_types.Date     `json:"published_date,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Severity *SeverityEnum                `json:"severity,omitempty"`
	Status   *Status4f5Enum               `json:"status,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableCVELCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableCVELCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableCVELCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCableRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableCableRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Label         *string                 `json:"label,omitempty"`
	Length        *int                    `json:"length"`
	LengthUnit    *LengthUnitEnum         `json:"length_unit,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status           *CableStatusChoices                   `json:"status,omitempty"`
	Tags             *[]TagSerializerFieldRequest          `json:"tags,omitempty"`
	TerminationAId   *openapi_types.UUID                   `json:"termination_a_id,omitempty"`
	TerminationAType *string                               `json:"termination_a_type,omitempty"`
	TerminationBId   *openapi_types.UUID                   `json:"termination_b_id,omitempty"`
	TerminationBType *string                               `json:"termination_b_type,omitempty"`
	Type             *PatchedBulkWritableCableRequest_Type `json:"type,omitempty"`
}

// PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableCableRequest.relationships.destination.objects.Item.
type PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableCableRequest.relationships.peer.objects.Item.
type PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableCableRequest.relationships.source.objects.Item.
type PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCableRequest_Type defines model for PatchedBulkWritableCableRequest.Type.
type PatchedBulkWritableCableRequest_Type struct {
	union json.RawMessage
}

// PatchedBulkWritableCapircaPolicyRequest CapircaPolicy Serializer.
type PatchedBulkWritableCapircaPolicyRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	Cfg             *string                      `json:"cfg"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Device          *openapi_types.UUID          `json:"device"`
	Id              openapi_types.UUID           `json:"id"`
	Net             *string                      `json:"net"`
	Pol             *string                      `json:"pol"`
	Svc             *string                      `json:"svc"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest Serializer for API.
type PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest struct {
	Circuit     *openapi_types.UUID                                               `json:"circuit,omitempty"`
	Id          openapi_types.UUID                                                `json:"id"`
	Impact      *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact `json:"impact"`
	Maintenance *openapi_types.UUID                                               `json:"maintenance,omitempty"`
}

// PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact defines model for PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest.Impact.
type PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact struct {
	union json.RawMessage
}

// PatchedBulkWritableCircuitMaintenanceRequest Serializer for API.
type PatchedBulkWritableCircuitMaintenanceRequest struct {
	Ack         *bool                                                `json:"ack"`
	Description *string                                              `json:"description"`
	EndTime     *time.Time                                           `json:"end_time,omitempty"`
	Id          openapi_types.UUID                                   `json:"id"`
	Name        *string                                              `json:"name,omitempty"`
	StartTime   *time.Time                                           `json:"start_time,omitempty"`
	Status      *PatchedBulkWritableCircuitMaintenanceRequest_Status `json:"status"`
}

// PatchedBulkWritableCircuitMaintenanceRequest_Status defines model for PatchedBulkWritableCircuitMaintenanceRequest.Status.
type PatchedBulkWritableCircuitMaintenanceRequest_Status struct {
	union json.RawMessage
}

// PatchedBulkWritableCircuitRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableCircuitRequest struct {
	Cid          *string                 `json:"cid,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	CommitRate   *int                    `json:"commit_rate"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	InstallDate  *openapi_types.Date     `json:"install_date"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider      *NestedProviderRequest `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *CircuitStatusChoices        `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type *NestedCircuitTypeRequest `json:"type,omitempty"`
}

// PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableCircuitRequest.relationships.destination.objects.Item.
type PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableCircuitRequest.relationships.peer.objects.Item.
type PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableCircuitRequest.relationships.source.objects.Item.
type PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTerminationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableCircuitTerminationRequest struct {
	// Circuit Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Circuit         *NestedCircuitRequest         `json:"circuit,omitempty"`
	CustomFields    *map[string]interface{}       `json:"custom_fields,omitempty"`
	Description     *string                       `json:"description,omitempty"`
	Id              openapi_types.UUID            `json:"id"`
	Location        *NestedLocationRequest        `json:"location"`
	PortSpeed       *int                          `json:"port_speed"`
	PpInfo          *string                       `json:"pp_info,omitempty"`
	ProviderNetwork *NestedProviderNetworkRequest `json:"provider_network"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site     *NestedSiteRequest `json:"site"`
	TermSide *TermSideEnum      `json:"term_side,omitempty"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableCircuitTerminationRequest.relationships.destination.objects.Item.
type PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableCircuitTerminationRequest.relationships.peer.objects.Item.
type PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableCircuitTerminationRequest.relationships.source.objects.Item.
type PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableCircuitTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableCircuitTypeRequest.relationships.destination.objects.Item.
type PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableCircuitTypeRequest.relationships.peer.objects.Item.
type PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableCircuitTypeRequest.relationships.source.objects.Item.
type PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableClusterGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableClusterGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableClusterGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableClusterGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableClusterRequest struct {
	Comments      *string                    `json:"comments,omitempty"`
	CustomFields  *map[string]interface{}    `json:"custom_fields,omitempty"`
	Group         *NestedClusterGroupRequest `json:"group"`
	Id            openapi_types.UUID         `json:"id"`
	Location      *NestedLocationRequest     `json:"location"`
	Name          *string                    `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *NestedSiteRequest           `json:"site"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`

	// Type Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Type *NestedClusterTypeRequest `json:"type,omitempty"`
}

// PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableClusterRequest.relationships.destination.objects.Item.
type PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableClusterRequest.relationships.peer.objects.Item.
type PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableClusterRequest.relationships.source.objects.Item.
type PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableClusterTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableClusterTypeRequest.relationships.destination.objects.Item.
type PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableClusterTypeRequest.relationships.peer.objects.Item.
type PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableClusterTypeRequest.relationships.source.objects.Item.
type PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCommandTokenRequest API serializer for interacting with CommandToken objects.
type PatchedBulkWritableCommandTokenRequest struct {
	// Comment Optional: Enter description of token
	Comment  *string            `json:"comment,omitempty"`
	Id       openapi_types.UUID `json:"id"`
	Platform *PlatformEnum      `json:"platform,omitempty"`

	// Token Token given by chat platform for signing or command validation
	Token *string `json:"token,omitempty"`
}

// PatchedBulkWritableComplianceFeatureRequest Serializer for ComplianceFeature object.
type PatchedBulkWritableComplianceFeatureRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description     *string                      `json:"description,omitempty"`
	Id              openapi_types.UUID           `json:"id"`
	Name            *string                      `json:"name,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableComplianceRuleRequest Serializer for ComplianceRule object.
type PatchedBulkWritableComplianceRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// ConfigOrdered Whether or not the configuration order matters, such as in ACLs.
	ConfigOrdered *bool `json:"config_ordered,omitempty"`

	// ConfigType Whether the config is in cli or json/structured format.
	ConfigType   *ConfigTypeEnum         `json:"config_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Feature      *openapi_types.UUID     `json:"feature,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// MatchConfig The config to match that is matched based on the parent most configuration. e.g. `router bgp` or `ntp`.
	MatchConfig *string                      `json:"match_config"`
	Platform    *openapi_types.UUID          `json:"platform,omitempty"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableComputedFieldRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableComputedFieldRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Description *string `json:"description,omitempty"`

	// FallbackValue Fallback value (if any) to be output for the field in the case of a template rendering error.
	FallbackValue *string            `json:"fallback_value,omitempty"`
	Id            openapi_types.UUID `json:"id"`

	// Label Name of the field as displayed to users
	Label *string `json:"label,omitempty"`

	// Slug Internal field name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// Template Jinja2 template code for field value
	Template *string `json:"template,omitempty"`
	Weight   *int    `json:"weight,omitempty"`
}

// PatchedBulkWritableConfigComplianceRequest Serializer for ConfigCompliance object.
type PatchedBulkWritableConfigComplianceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// Actual Actual Configuration for feature
	Actual        *map[string]interface{} `json:"actual,omitempty"`
	Compliance    *bool                   `json:"compliance"`
	ComplianceInt *int                    `json:"compliance_int"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device The device
	Device *openapi_types.UUID `json:"device,omitempty"`

	// Extra Configuration that should not be on the device.
	Extra *map[string]interface{} `json:"extra,omitempty"`
	Id    openapi_types.UUID      `json:"id"`

	// Intended Intended Configuration for feature
	Intended *map[string]interface{} `json:"intended,omitempty"`

	// Missing Configuration that should be on the device.
	Missing *map[string]interface{}      `json:"missing,omitempty"`
	Ordered *bool                        `json:"ordered,omitempty"`
	Rule    *openapi_types.UUID          `json:"rule,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableConfigContextRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableConfigContextRequest struct {
	ClusterGroups *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"cluster_groups,omitempty"`
	Clusters *[]struct {
		Name string `json:"name"`
	} `json:"clusters,omitempty"`
	Data        *map[string]interface{} `json:"data,omitempty"`
	Description *string                 `json:"description,omitempty"`
	DeviceTypes *[]struct {
		Model string `json:"model"`
		Slug  string `json:"slug"`
	} `json:"device_types,omitempty"`
	Id        openapi_types.UUID `json:"id"`
	IsActive  *bool              `json:"is_active,omitempty"`
	Locations *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"locations,omitempty"`
	Name             *string             `json:"name,omitempty"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Platforms        *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"platforms,omitempty"`
	Regions *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"regions,omitempty"`
	Roles *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"roles,omitempty"`
	Schema *NestedConfigContextSchemaRequest `json:"schema"`
	Sites  *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"sites,omitempty"`
	Tags         *[]string `json:"tags,omitempty"`
	TenantGroups *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"tenant_groups,omitempty"`
	Tenants *[]struct {
		Name string  `json:"name"`
		Slug *string `json:"slug,omitempty"`
	} `json:"tenants,omitempty"`
	Weight *int `json:"weight,omitempty"`
}

// PatchedBulkWritableConfigContextSchemaRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableConfigContextSchemaRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DataSchema A JSON Schema document which is used to validate a config context object.
	DataSchema       *map[string]interface{} `json:"data_schema,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Id               openapi_types.UUID      `json:"id"`
	Name             *string                 `json:"name,omitempty"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableConfigContextSchemaRequest.relationships.destination.objects.Item.
type PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableConfigContextSchemaRequest.relationships.peer.objects.Item.
type PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableConfigContextSchemaRequest.relationships.source.objects.Item.
type PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConfigRemoveRequest Serializer for ConfigRemove object.
type PatchedBulkWritableConfigRemoveRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            *string                 `json:"name,omitempty"`
	Platform        *openapi_types.UUID     `json:"platform,omitempty"`

	// Regex Regex pattern used to remove a line from the backup configuration.
	Regex *string                      `json:"regex,omitempty"`
	Tags  *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableConfigReplaceRequest Serializer for ConfigReplace object.
type PatchedBulkWritableConfigReplaceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            *string                 `json:"name,omitempty"`
	Platform        *openapi_types.UUID     `json:"platform,omitempty"`

	// Regex Regex pattern that will be found and replaced with 'replaced text'.
	Regex *string `json:"regex,omitempty"`

	// Replace Text that will be inserted in place of Regex pattern match.
	Replace *string                      `json:"replace,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableConsolePortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableConsolePortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`
	Id     openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *ConsolePortTypeChoices      `json:"type,omitempty"`
}

// PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableConsolePortRequest.relationships.destination.objects.Item.
type PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableConsolePortRequest.relationships.peer.objects.Item.
type PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableConsolePortRequest.relationships.source.objects.Item.
type PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsolePortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableConsolePortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *ConsolePortTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableConsolePortTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableConsolePortTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableConsolePortTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableConsoleServerPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`
	Id     openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *ConsolePortTypeChoices      `json:"type,omitempty"`
}

// PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableConsoleServerPortRequest.relationships.destination.objects.Item.
type PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableConsoleServerPortRequest.relationships.peer.objects.Item.
type PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableConsoleServerPortRequest.relationships.source.objects.Item.
type PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableConsoleServerPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *ConsolePortTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableConsoleServerPortTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableConsoleServerPortTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableConsoleServerPortTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContactLCMRequest API serializer.
type PatchedBulkWritableContactLCMRequest struct {
	Address  *string `json:"address,omitempty"`
	Comments *string `json:"comments,omitempty"`

	// Contract Associated Contract
	Contract      *NestedContractLCMRequest `json:"contract,omitempty"`
	CustomFields  *map[string]interface{}   `json:"custom_fields,omitempty"`
	Email         *openapi_types.Email      `json:"email,omitempty"`
	Id            openapi_types.UUID        `json:"id"`
	Name          *string                   `json:"name"`
	Phone         *string                   `json:"phone,omitempty"`
	Priority      *int                      `json:"priority,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableContactLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableContactLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableContactLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContractLCMRequest API serializer.
type PatchedBulkWritableContractLCMRequest struct {
	ContractType *string                 `json:"contract_type"`
	Cost         *string                 `json:"cost"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	End          *openapi_types.Date     `json:"end"`
	Id           openapi_types.UUID      `json:"id"`
	Name         *string                 `json:"name,omitempty"`

	// Provider Vendor
	Provider      *NestedProviderLCMRequest `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Start        *openapi_types.Date          `json:"start"`
	SupportLevel *string                      `json:"support_level"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableContractLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableContractLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableContractLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableCustomFieldChoiceRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableCustomFieldChoiceRequest struct {
	// Field Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Field *NestedCustomFieldRequest `json:"field,omitempty"`
	Id    openapi_types.UUID        `json:"id"`
	Value *string                   `json:"value,omitempty"`

	// Weight Higher weights appear later in the list
	Weight *int `json:"weight,omitempty"`
}

// PatchedBulkWritableCustomLinkRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableCustomLinkRequest struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *ButtonClassEnum `json:"button_class,omitempty"`
	ContentType *string          `json:"content_type,omitempty"`

	// GroupName Links with the same group will appear as a dropdown menu
	GroupName *string            `json:"group_name,omitempty"`
	Id        openapi_types.UUID `json:"id"`
	Name      *string            `json:"name,omitempty"`

	// NewWindow Force link to open in a new window
	NewWindow *bool `json:"new_window,omitempty"`

	// TargetUrl Jinja2 template code for link URL. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>.
	TargetUrl *string `json:"target_url,omitempty"`

	// Text Jinja2 template code for link text. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>. Links which render as empty text will not be displayed.
	Text   *string `json:"text,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// PatchedBulkWritableDeviceBayRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceBayRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device          *NestedDeviceRequest `json:"device,omitempty"`
	Id              openapi_types.UUID   `json:"id"`
	InstalledDevice *NestedDeviceRequest `json:"installed_device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceBayRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceBayRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceBayRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceBayTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceBayTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
}

// PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceBayTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceBayTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceBayTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRedundancyGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceRedundancyGroupRequest struct {
	Comments         *string                 `json:"comments,omitempty"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	FailoverStrategy *FailoverStrategyEnum   `json:"failover_strategy,omitempty"`
	Id               openapi_types.UUID      `json:"id"`
	Name             *string                 `json:"name,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *openapi_types.UUID          `json:"secrets_group"`
	Slug         *string                      `json:"slug,omitempty"`
	Status       *LocationStatusChoices       `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceRedundancyGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceRedundancyGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceRedundancyGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// VmRole Virtual machines may be assigned to this role
	VmRole *bool `json:"vm_role,omitempty"`
}

// PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceRoleRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceRoleRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceRoleRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceTypeRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	FrontImage   *openapi_types.File     `json:"front_image,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsFullDepth Device consumes both front and rear rack faces
	IsFullDepth *bool `json:"is_full_depth,omitempty"`

	// Manufacturer Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Manufacturer *NestedManufacturerRequest `json:"manufacturer,omitempty"`
	Model        *string                    `json:"model,omitempty"`

	// PartNumber Discrete part number (optional)
	PartNumber    *string             `json:"part_number,omitempty"`
	RearImage     *openapi_types.File `json:"rear_image,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug          *string                      `json:"slug,omitempty"`
	SubdeviceRole *SubdeviceRoleEnum           `json:"subdevice_role,omitempty"`
	Tags          *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UHeight       *int                         `json:"u_height,omitempty"`
}

// PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceTypeRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceTypeRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceTypeRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDeviceWithConfigContextRequest struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                             `json:"asset_tag"`
	Cluster               *NestedClusterRequest               `json:"cluster"`
	Comments              *string                             `json:"comments,omitempty"`
	CustomFields          *map[string]interface{}             `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *NestedDeviceRedundancyGroupRequest `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int `json:"device_redundancy_group_priority"`

	// DeviceRole Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceRole *NestedDeviceRoleRequest `json:"device_role,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType         *NestedDeviceTypeRequest          `json:"device_type,omitempty"`
	Face               *FaceEnum                         `json:"face,omitempty"`
	Id                 openapi_types.UUID                `json:"id"`
	LocalContextData   *map[string]interface{}           `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchemaRequest `json:"local_context_schema"`
	Location           *NestedLocationRequest            `json:"location"`
	Name               *string                           `json:"name"`
	Platform           *NestedPlatformRequest            `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position      *int                    `json:"position"`
	PrimaryIp4    *NestedIPAddressRequest `json:"primary_ip4"`
	PrimaryIp6    *NestedIPAddressRequest `json:"primary_ip6"`
	Rack          *NestedRackRequest      `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *NestedSecretsGroupRequest `json:"secrets_group"`
	Serial       *string                    `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site           *NestedSiteRequest           `json:"site,omitempty"`
	Status         *DeviceStatusChoices         `json:"status,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant         *NestedTenantRequest         `json:"tenant"`
	VcPosition     *int                         `json:"vc_position"`
	VcPriority     *int                         `json:"vc_priority"`
	VirtualChassis *NestedVirtualChassisRequest `json:"virtual_chassis"`
}

// PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDeviceWithConfigContextRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDeviceWithConfigContextRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDeviceWithConfigContextRequest.relationships.source.objects.Item.
type PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDynamicGroupMembershipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableDynamicGroupMembershipRequest struct {
	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group    *NestedDynamicGroupRequest `json:"group,omitempty"`
	Id       openapi_types.UUID         `json:"id"`
	Operator *OperatorEnum              `json:"operator,omitempty"`

	// ParentGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	ParentGroup *NestedDynamicGroupRequest `json:"parent_group,omitempty"`
	Weight      *int                       `json:"weight,omitempty"`
}

// PatchedBulkWritableDynamicGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableDynamicGroupRequest struct {
	ContentType  *string                 `json:"content_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Filter A JSON-encoded dictionary of filter parameters for group membership
	Filter *map[string]interface{} `json:"filter,omitempty"`
	Id     openapi_types.UUID      `json:"id"`

	// Name Dynamic Group name
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableDynamicGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableDynamicGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableDynamicGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableExportTemplateRequest Extend ValidatedModelSerializer with a `relationships` field.
type PatchedBulkWritableExportTemplateRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Description *string `json:"description,omitempty"`

	// FileExtension Extension to append to the rendered filename
	FileExtension *string            `json:"file_extension,omitempty"`
	Id            openapi_types.UUID `json:"id"`

	// MimeType Defaults to <code>text/plain</code>
	MimeType         *string             `json:"mime_type,omitempty"`
	Name             *string             `json:"name,omitempty"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TemplateCode The list of objects being exported is passed as a context variable named <code>queryset</code>.
	TemplateCode *string `json:"template_code,omitempty"`
}

// PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableExportTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableExportTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableExportTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFQDNRequest FQDN Serializer.
type PatchedBulkWritableFQDNRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	IpAddresses     *[]struct {
		Address string `json:"address"`
	} `json:"ip_addresses,omitempty"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableFQDNRequest.relationships.destination.objects.Item.
type PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableFQDNRequest.relationships.peer.objects.Item.
type PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableFQDNRequest.relationships.source.objects.Item.
type PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableFrontPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`
	Id     openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  *string `json:"name,omitempty"`

	// RearPort NestedRearPortSerializer but with parent device omitted (since front and rear ports must belong to same device)
	RearPort         *FrontPortRearPortRequest `json:"rear_port,omitempty"`
	RearPortPosition *int                      `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PortTypeChoices             `json:"type,omitempty"`
}

// PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableFrontPortRequest.relationships.destination.objects.Item.
type PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableFrontPortRequest.relationships.peer.objects.Item.
type PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableFrontPortRequest.relationships.source.objects.Item.
type PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableFrontPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  *string `json:"name,omitempty"`

	// RearPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	RearPort         *NestedRearPortTemplateRequest `json:"rear_port,omitempty"`
	RearPortPosition *int                           `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PortTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableFrontPortTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableFrontPortTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableFrontPortTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableGitRepositoryRequest Git repositories defined as a data source.
type PatchedBulkWritableGitRepositoryRequest struct {
	Branch *string `json:"branch,omitempty"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead      *string                                                          `json:"current_head,omitempty"`
	CustomFields     *map[string]interface{}                                          `json:"custom_fields,omitempty"`
	Id               openapi_types.UUID                                               `json:"id"`
	Name             *string                                                          `json:"name,omitempty"`
	ProvidedContents *[]PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item `json:"provided_contents,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    *string                    `json:"remote_url,omitempty"`
	SecretsGroup *NestedSecretsGroupRequest `json:"secrets_group"`
	Slug         *string                    `json:"slug,omitempty"`
	Token        *string                    `json:"token,omitempty"`
	Username     *string                    `json:"username,omitempty"`
}

// PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item defines model for PatchedBulkWritableGitRepositoryRequest.provided_contents.Item.
type PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item struct {
	union json.RawMessage
}

// PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableGitRepositoryRequest.relationships.destination.objects.Item.
type PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableGitRepositoryRequest.relationships.peer.objects.Item.
type PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableGitRepositoryRequest.relationships.source.objects.Item.
type PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableGoldenConfigRequest Serializer for GoldenConfig object.
type PatchedBulkWritableGoldenConfigRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupConfig Full backup config for device.
	BackupConfig          *string    `json:"backup_config,omitempty"`
	BackupLastAttemptDate *time.Time `json:"backup_last_attempt_date"`
	BackupLastSuccessDate *time.Time `json:"backup_last_success_date"`

	// ComplianceConfig Full config diff for device.
	ComplianceConfig          *string                 `json:"compliance_config,omitempty"`
	ComplianceLastAttemptDate *time.Time              `json:"compliance_last_attempt_date"`
	ComplianceLastSuccessDate *time.Time              `json:"compliance_last_success_date"`
	CustomFields              *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device device
	Device *openapi_types.UUID `json:"device,omitempty"`
	Id     openapi_types.UUID  `json:"id"`

	// IntendedConfig Intended config for the device.
	IntendedConfig          *string                      `json:"intended_config,omitempty"`
	IntendedLastAttemptDate *time.Time                   `json:"intended_last_attempt_date"`
	IntendedLastSuccessDate *time.Time                   `json:"intended_last_success_date"`
	Tags                    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableGoldenConfigSettingRequest Serializer for GoldenConfigSetting object.
type PatchedBulkWritableGoldenConfigSettingRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupPathTemplate The Jinja path representation of where the backup file will be found. The variable `obj` is available as the device instance object of a given device, as is the case for all Jinja templates. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	BackupPathTemplate *string             `json:"backup_path_template,omitempty"`
	BackupRepository   *openapi_types.UUID `json:"backup_repository"`

	// BackupTestConnectivity Whether or not to pretest the connectivity of the device by verifying there is a resolvable IP that can connect to port 22.
	BackupTestConnectivity *bool                   `json:"backup_test_connectivity,omitempty"`
	CustomFields           *map[string]interface{} `json:"custom_fields,omitempty"`
	Description            *string                 `json:"description,omitempty"`

	// DynamicGroup Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DynamicGroup *NestedDynamicGroupRequest `json:"dynamic_group,omitempty"`
	Id           openapi_types.UUID         `json:"id"`

	// IntendedPathTemplate The Jinja path representation of where the generated file will be places. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	IntendedPathTemplate *string             `json:"intended_path_template,omitempty"`
	IntendedRepository   *openapi_types.UUID `json:"intended_repository"`

	// JinjaPathTemplate The Jinja path representation of where the Jinja template can be found. e.g. `{{obj.platform.slug}}.j2`
	JinjaPathTemplate *string                      `json:"jinja_path_template,omitempty"`
	JinjaRepository   *openapi_types.UUID          `json:"jinja_repository"`
	Name              *string                      `json:"name,omitempty"`
	Scope             *map[string]interface{}      `json:"scope,omitempty"`
	Slug              *string                      `json:"slug,omitempty"`
	SotAggQuery       *openapi_types.UUID          `json:"sot_agg_query"`
	Tags              *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Weight            *int                         `json:"weight,omitempty"`
}

// PatchedBulkWritableGraphQLQueryRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableGraphQLQueryRequest struct {
	Id        openapi_types.UUID      `json:"id"`
	Name      *string                 `json:"name,omitempty"`
	Query     *string                 `json:"query,omitempty"`
	Slug      *string                 `json:"slug,omitempty"`
	Variables *map[string]interface{} `json:"variables"`
}

// PatchedBulkWritableGroupRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableGroupRequest struct {
	Id   int     `json:"id"`
	Name *string `json:"name,omitempty"`
}

// PatchedBulkWritableHardwareLCMRequest API serializer.
type PatchedBulkWritableHardwareLCMRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DeviceType Device Type to attach the Hardware LCM to
	DeviceType           *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	DocumentationUrl     *string                  `json:"documentation_url,omitempty"`
	EndOfSale            *openapi_types.Date      `json:"end_of_sale"`
	EndOfSecurityPatches *openapi_types.Date      `json:"end_of_security_patches"`
	EndOfSupport         *openapi_types.Date      `json:"end_of_support"`
	EndOfSwReleases      *openapi_types.Date      `json:"end_of_sw_releases"`
	Id                   openapi_types.UUID       `json:"id"`
	InventoryItem        *string                  `json:"inventory_item"`
	Relationships        *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate *openapi_types.Date          `json:"release_date"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableHardwareLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableHardwareLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableHardwareLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPAddressRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableIPAddressRequest struct {
	Address            *string                 `json:"address,omitempty"`
	AssignedObjectId   *openapi_types.UUID     `json:"assigned_object_id"`
	AssignedObjectType *string                 `json:"assigned_object_type"`
	CustomFields       *map[string]interface{} `json:"custom_fields,omitempty"`
	Description        *string                 `json:"description,omitempty"`

	// DnsName Hostname or FQDN (not case-sensitive)
	DnsName       *string                 `json:"dns_name,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	NatInside     *NestedIPAddressRequest `json:"nat_inside"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *RoleEnum                    `json:"role,omitempty"`
	Status *IPAddressStatusChoices      `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vrf    *NestedVRFRequest            `json:"vrf"`
}

// PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableIPAddressRequest.relationships.destination.objects.Item.
type PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableIPAddressRequest.relationships.peer.objects.Item.
type PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableIPAddressRequest.relationships.source.objects.Item.
type PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPRangeRequest IPRange Serializer.
type PatchedBulkWritableIPRangeRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	EndAddress      *string                 `json:"end_address,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	StartAddress *string                      `json:"start_address,omitempty"`
	Status       *Status8f7Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Vrf          *openapi_types.UUID          `json:"vrf"`
}

// PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableIPRangeRequest.relationships.destination.objects.Item.
type PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableIPRangeRequest.relationships.peer.objects.Item.
type PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableIPRangeRequest.relationships.source.objects.Item.
type PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableImageAttachmentRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableImageAttachmentRequest struct {
	ContentType *string             `json:"content_type,omitempty"`
	Id          openapi_types.UUID  `json:"id"`
	Image       *openapi_types.File `json:"image,omitempty"`
	ImageHeight *int                `json:"image_height,omitempty"`
	ImageWidth  *int                `json:"image_width,omitempty"`
	Name        *string             `json:"name,omitempty"`
	ObjectId    *openapi_types.UUID `json:"object_id,omitempty"`
}

// PatchedBulkWritableInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableInterfaceRequest struct {
	Bridge       *NestedInterfaceRequest `json:"bridge"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device  *NestedDeviceRequest `json:"device,omitempty"`
	Enabled *bool                `json:"enabled,omitempty"`
	Id      openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label      *string                 `json:"label,omitempty"`
	Lag        *NestedInterfaceRequest `json:"lag"`
	MacAddress *string                 `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly        *bool                   `json:"mgmt_only,omitempty"`
	Mode            *ModeEnum               `json:"mode,omitempty"`
	Mtu             *int                    `json:"mtu"`
	Name            *string                 `json:"name,omitempty"`
	ParentInterface *NestedInterfaceRequest `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      *InterfaceStatusChoices `json:"status,omitempty"`
	TaggedVlans *[]struct {
		Name string `json:"name"`
		Vid  int    `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type         *InterfaceTypeChoices        `json:"type,omitempty"`
	UntaggedVlan *NestedVLANRequest           `json:"untagged_vlan"`
}

// PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableInterfaceRequest.relationships.destination.objects.Item.
type PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableInterfaceRequest.relationships.peer.objects.Item.
type PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableInterfaceRequest.relationships.source.objects.Item.
type PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInterfaceTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableInterfaceTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	MgmtOnly      *bool   `json:"mgmt_only,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *InterfaceTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableInterfaceTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableInterfaceTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableInterfaceTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInventoryItemRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableInventoryItemRequest struct {
	// AssetTag A unique tag used to identify this item
	AssetTag     *string                 `json:"asset_tag"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`

	// Discovered This item was automatically discovered
	Discovered *bool              `json:"discovered,omitempty"`
	Id         openapi_types.UUID `json:"id"`

	// Label Physical label
	Label        *string                    `json:"label,omitempty"`
	Manufacturer *NestedManufacturerRequest `json:"manufacturer"`
	Name         *string                    `json:"name,omitempty"`
	Parent       *openapi_types.UUID        `json:"parent"`

	// PartId Manufacturer-assigned part identifier
	PartId        *string `json:"part_id,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Serial *string                      `json:"serial,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableInventoryItemRequest.relationships.destination.objects.Item.
type PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableInventoryItemRequest.relationships.peer.objects.Item.
type PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableInventoryItemRequest.relationships.source.objects.Item.
type PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobHookRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableJobHookRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Job The job that this job hook will initiate
	Job           *openapi_types.UUID `json:"job,omitempty"`
	Name          *string             `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TypeCreate Call this job hook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this job hook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this job hook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableJobHookRequest.relationships.destination.objects.Item.
type PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableJobHookRequest.relationships.peer.objects.Item.
type PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableJobHookRequest.relationships.source.objects.Item.
type PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableJobRequest struct {
	// ApprovalRequired Whether the job requires approval from another user before running
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovalRequiredOverride If set, the configured value will remain even if the underlying Job source code changes
	ApprovalRequiredOverride *bool `json:"approval_required_override,omitempty"`

	// CommitDefault Whether the job defaults to committing changes when run, or defaults to a dry-run
	CommitDefault *bool `json:"commit_default,omitempty"`

	// CommitDefaultOverride If set, the configured value will remain even if the underlying Job source code changes
	CommitDefaultOverride *bool                   `json:"commit_default_override,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`

	// Description Markdown formatting is supported
	Description *string `json:"description,omitempty"`

	// DescriptionOverride If set, the configured description will remain even if the underlying Job source code changes
	DescriptionOverride *bool `json:"description_override,omitempty"`

	// Enabled Whether this job can be executed by users
	Enabled *bool `json:"enabled,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping *string `json:"grouping,omitempty"`

	// GroupingOverride If set, the configured grouping will remain even if the underlying Job source code changes
	GroupingOverride *bool `json:"grouping_override,omitempty"`

	// HasSensitiveVariables Whether this job contains sensitive variables
	HasSensitiveVariables *bool `json:"has_sensitive_variables,omitempty"`

	// HasSensitiveVariablesOverride If set, the configured value will remain even if the underlying Job source code changes
	HasSensitiveVariablesOverride *bool `json:"has_sensitive_variables_override,omitempty"`

	// Hidden Whether the job defaults to not being shown in the UI
	Hidden *bool `json:"hidden,omitempty"`

	// HiddenOverride If set, the configured value will remain even if the underlying Job source code changes
	HiddenOverride *bool              `json:"hidden_override,omitempty"`
	Id             openapi_types.UUID `json:"id"`

	// Name Human-readable name of this job
	Name *string `json:"name,omitempty"`

	// NameOverride If set, the configured name will remain even if the underlying Job source code changes
	NameOverride *bool `json:"name_override,omitempty"`

	// ReadOnly Whether the job is prevented from making lasting changes to the database
	ReadOnly *bool `json:"read_only,omitempty"`

	// ReadOnlyOverride If set, the configured value will remain even if the underlying Job source code changes
	ReadOnlyOverride *bool `json:"read_only_override,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SoftTimeLimit Maximum runtime in seconds before the job will receive a <code>SoftTimeLimitExceeded</code> exception.<br>Set to 0 to use Nautobot system default
	SoftTimeLimit *float64 `json:"soft_time_limit,omitempty"`

	// SoftTimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	SoftTimeLimitOverride *bool                        `json:"soft_time_limit_override,omitempty"`
	Tags                  *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// TaskQueues Comma separated list of task queues that this job can run on. A blank list will use the default queue
	TaskQueues *map[string]interface{} `json:"task_queues,omitempty"`

	// TaskQueuesOverride If set, the configured value will remain even if the underlying Job source code changes
	TaskQueuesOverride *bool `json:"task_queues_override,omitempty"`

	// TimeLimit Maximum runtime in seconds before the job will be forcibly terminated.<br>Set to 0 to use Nautobot system default
	TimeLimit *float64 `json:"time_limit,omitempty"`

	// TimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	TimeLimitOverride *bool `json:"time_limit_override,omitempty"`
}

// PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableJobRequest.relationships.destination.objects.Item.
type PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableJobRequest.relationships.peer.objects.Item.
type PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableJobRequest.relationships.source.objects.Item.
type PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableLocationRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// LocationType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	LocationType  *NestedLocationTypeRequest `json:"location_type,omitempty"`
	Name          *string                    `json:"name,omitempty"`
	Parent        *NestedLocationRequest     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *NestedSiteRequest           `json:"site"`
	Slug   *string                      `json:"slug,omitempty"`
	Status *LocationStatusChoices       `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableLocationRequest.relationships.destination.objects.Item.
type PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableLocationRequest.relationships.peer.objects.Item.
type PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableLocationRequest.relationships.source.objects.Item.
type PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableLocationTypeRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         *string                 `json:"name,omitempty"`

	// Nestable Allow Locations of this type to be parents/children of other Locations of this same type
	Nestable      *bool                      `json:"nestable,omitempty"`
	Parent        *NestedLocationTypeRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableLocationTypeRequest.relationships.destination.objects.Item.
type PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableLocationTypeRequest.relationships.peer.objects.Item.
type PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableLocationTypeRequest.relationships.source.objects.Item.
type PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableManufacturerRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableManufacturerRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableManufacturerRequest.relationships.destination.objects.Item.
type PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableManufacturerRequest.relationships.peer.objects.Item.
type PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableManufacturerRequest.relationships.source.objects.Item.
type PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableMinMaxValidationRuleRequest Serializer for `MinMaxValidationRule` objects.
type PatchedBulkWritableMinMaxValidationRuleRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Enabled     *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage *string            `json:"error_message"`
	Field        *string            `json:"field,omitempty"`
	Id           openapi_types.UUID `json:"id"`

	// Max When set, apply a maximum value contraint to the value of the model field.
	Max *float64 `json:"max"`

	// Min When set, apply a minimum value contraint to the value of the model field.
	Min  *float64 `json:"min"`
	Name *string  `json:"name,omitempty"`
	Slug *string  `json:"slug,omitempty"`
}

// PatchedBulkWritableNATPolicyRequest NATPolicy Serializer.
type PatchedBulkWritableNATPolicyRequest struct {
	CustomFieldData       *map[string]interface{}                  `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]NATPolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]NATPolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}                  `json:"custom_fields,omitempty"`
	Description           *string                                  `json:"description,omitempty"`
	Id                    openapi_types.UUID                       `json:"id"`
	Name                  *string                                  `json:"name,omitempty"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRequest.relationships.destination.objects.Item.
type PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRequest.relationships.peer.objects.Item.
type PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRequest.relationships.source.objects.Item.
type PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest PolicyRule Serializer.
type PatchedBulkWritableNATPolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone                  *ZoneRequest       `json:"destination_zone,omitempty"`
	Id                               openapi_types.UUID `json:"id"`
	Index                            *int               `json:"index"`
	Log                              *bool              `json:"log,omitempty"`
	Name                             *string            `json:"name,omitempty"`
	OriginalDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                           `json:"label,omitempty"`
					ObjectType *string                                                                                                                           `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                                 `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                   `json:"tags,omitempty"`
	} `json:"original_destination_address_groups,omitempty"`
	OriginalDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                                        `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                                 `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                                   `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                               `json:"tags,omitempty"`
	} `json:"original_destination_addresses,omitempty"`
	OriginalDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                           `json:"label,omitempty"`
					ObjectType *string                                                                                                                           `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                                 `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                   `json:"tags,omitempty"`
	} `json:"original_destination_service_groups,omitempty"`
	OriginalDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                              `json:"tags,omitempty"`
	} `json:"original_destination_services,omitempty"`
	OriginalSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                            `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                              `json:"tags,omitempty"`
	} `json:"original_source_address_groups,omitempty"`
	OriginalSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                                   `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                          `json:"tags,omitempty"`
	} `json:"original_source_addresses,omitempty"`
	OriginalSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                               `json:"label,omitempty"`
					ObjectType *string                                                                                                               `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                            `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                              `json:"tags,omitempty"`
	} `json:"original_source_service_groups,omitempty"`
	OriginalSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                           `json:"label,omitempty"`
				ObjectType *string                                                                                           `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                         `json:"tags,omitempty"`
	} `json:"original_source_services,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Remark    *bool   `json:"remark,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone                         *ZoneRequest                 `json:"source_zone,omitempty"`
	Status                             *Status8f7Enum               `json:"status,omitempty"`
	Tags                               *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	TranslatedDestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                             `json:"label,omitempty"`
					ObjectType *string                                                                                                                             `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                                   `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                                              `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                     `json:"tags,omitempty"`
	} `json:"translated_destination_address_groups,omitempty"`
	TranslatedDestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                                          `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                                   `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                 `json:"tags,omitempty"`
	} `json:"translated_destination_addresses,omitempty"`
	TranslatedDestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                                              `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                             `json:"label,omitempty"`
					ObjectType *string                                                                                                                             `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                                   `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                     `json:"tags,omitempty"`
	} `json:"translated_destination_service_groups,omitempty"`
	TranslatedDestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                `json:"tags,omitempty"`
	} `json:"translated_destination_services,omitempty"`
	TranslatedSourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                   `json:"label,omitempty"`
					ObjectType *string                                                                                                                   `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                              `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                `json:"tags,omitempty"`
	} `json:"translated_source_address_groups,omitempty"`
	TranslatedSourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                              `json:"label,omitempty"`
				ObjectType *string                                                                                              `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                `json:"label,omitempty"`
				ObjectType *string                                                                                                `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                            `json:"tags,omitempty"`
	} `json:"translated_source_addresses,omitempty"`
	TranslatedSourceServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                        `json:"label,omitempty"`
					ObjectType *string                                                                                                                        `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                                 `json:"label,omitempty"`
					ObjectType *string                                                                                                                 `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                                   `json:"label,omitempty"`
					ObjectType *string                                                                                                                   `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                              `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                                `json:"tags,omitempty"`
	} `json:"translated_source_service_groups,omitempty"`
	TranslatedSourceServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                               `json:"label,omitempty"`
				ObjectType *string                                                                                               `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                           `json:"tags,omitempty"`
	} `json:"translated_source_services,omitempty"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.AddressObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsAddressObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddressGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationAddresses.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationAddressesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.ServiceObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsServiceObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServiceGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServiceGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalDestinationServices.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalDestinationServicesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.AddressObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsAddressObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddressGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceAddresses.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceAddressesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.ServiceObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsServiceObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServiceGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServiceGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServices.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.OriginalSourceServices.Status.
type PatchedBulkWritableNATPolicyRuleRequestOriginalSourceServicesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.relationships.destination.objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.relationships.peer.objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.relationships.source.objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.AddressObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsAddressObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddressGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationAddresses.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationAddressesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.ServiceObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsServiceObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServiceGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServiceGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedDestinationServices.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedDestinationServicesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.AddressObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsAddressObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddressGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceAddresses.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceAddressesStatus string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.ServiceObjects.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsServiceObjectsStatus string

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServiceGroups.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServiceGroupsStatus string

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesIpProtocol string

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Destination.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Peer.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Relationships.Source.Objects.Item.
type PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus defines model for PatchedBulkWritableNATPolicyRuleRequest.TranslatedSourceServices.Status.
type PatchedBulkWritableNATPolicyRuleRequestTranslatedSourceServicesStatus string

// PatchedBulkWritableNoteRequest This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type PatchedBulkWritableNoteRequest struct {
	AssignedObjectId   *openapi_types.UUID `json:"assigned_object_id,omitempty"`
	AssignedObjectType *string             `json:"assigned_object_type,omitempty"`
	Id                 openapi_types.UUID  `json:"id"`
	Note               *string             `json:"note,omitempty"`
	Slug               *string             `json:"slug,omitempty"`
}

// PatchedBulkWritableObjectPermissionRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableObjectPermissionRequest struct {
	// Actions The list of actions granted by this permission
	Actions *map[string]interface{} `json:"actions,omitempty"`

	// Constraints Queryset filter matching the applicable objects of the selected type(s)
	Constraints *map[string]interface{} `json:"constraints"`
	Description *string                 `json:"description,omitempty"`
	Enabled     *bool                   `json:"enabled,omitempty"`
	Groups      *[]struct {
		Name string `json:"name"`
	} `json:"groups,omitempty"`
	Id          openapi_types.UUID `json:"id"`
	Name        *string            `json:"name,omitempty"`
	ObjectTypes *[]string          `json:"object_types,omitempty"`
	Users       *[]struct {
		// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
		Username string `json:"username"`
	} `json:"users,omitempty"`
}

// PatchedBulkWritablePeerEndpointRequest REST API serializer for PeerEndpoint records.
type PatchedBulkWritablePeerEndpointRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Enabled          *bool                          `json:"enabled,omitempty"`
	ExportPolicy     *string                        `json:"export_policy,omitempty"`
	Id               openapi_types.UUID             `json:"id"`
	ImportPolicy     *string                        `json:"import_policy,omitempty"`
	PeerGroup        *NestedPeerGroupRequest        `json:"peer_group"`
	Peering          *NestedPeeringRequest          `json:"peering"`
	Secret           *NestedSecretRequest           `json:"secret"`
	SourceInterface  *NestedInterfaceRequest        `json:"source_interface"`
	SourceIp         *NestedIPAddressRequest        `json:"source_ip"`
	Tags             *[]TagSerializerFieldRequest   `json:"tags,omitempty"`
}

// PatchedBulkWritablePeerGroupRequest REST API serializer for PeerGroup records.
type PatchedBulkWritablePeerGroupRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest  `json:"autonomous_system"`
	CustomFields     *map[string]interface{}         `json:"custom_fields,omitempty"`
	Description      *string                         `json:"description,omitempty"`
	Enabled          *bool                           `json:"enabled,omitempty"`
	ExportPolicy     *string                         `json:"export_policy,omitempty"`
	Id               openapi_types.UUID              `json:"id"`
	ImportPolicy     *string                         `json:"import_policy,omitempty"`
	Name             *string                         `json:"name,omitempty"`
	Role             *openapi_types.UUID             `json:"role"`
	Secret           *NestedSecretRequest            `json:"secret"`
	SourceInterface  *NestedInterfaceRequest         `json:"source_interface"`
	SourceIp         *NestedIPAddressRequest         `json:"source_ip"`
	Template         *NestedPeerGroupTemplateRequest `json:"template"`
}

// PatchedBulkWritablePeerGroupTemplateRequest REST API serializer for PeerGroup records.
type PatchedBulkWritablePeerGroupTemplateRequest struct {
	AutonomousSystem *NestedAutonomousSystemRequest `json:"autonomous_system"`
	CustomFields     *map[string]interface{}        `json:"custom_fields,omitempty"`
	Description      *string                        `json:"description,omitempty"`
	Enabled          *bool                          `json:"enabled,omitempty"`
	ExportPolicy     *string                        `json:"export_policy,omitempty"`
	Id               openapi_types.UUID             `json:"id"`
	ImportPolicy     *string                        `json:"import_policy,omitempty"`
	Name             *string                        `json:"name,omitempty"`
	Role             *openapi_types.UUID            `json:"role"`
	Secret           *NestedSecretRequest           `json:"secret"`
}

// PatchedBulkWritablePeeringRequest REST API serializer for Peering records.
type PatchedBulkWritablePeeringRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Status       *CircuitStatusChoices   `json:"status,omitempty"`
}

// PatchedBulkWritablePeeringRoleRequest REST API serializer for PeeringRole records.
type PatchedBulkWritablePeeringRoleRequest struct {
	Color        *string                 `json:"color,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         *string                 `json:"name,omitempty"`
	Slug         *string                 `json:"slug,omitempty"`
}

// PatchedBulkWritablePlatformRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePlatformRequest struct {
	CustomFields *map[string]interface{}    `json:"custom_fields,omitempty"`
	Description  *string                    `json:"description,omitempty"`
	Id           openapi_types.UUID         `json:"id"`
	Manufacturer *NestedManufacturerRequest `json:"manufacturer"`
	Name         *string                    `json:"name,omitempty"`

	// NapalmArgs Additional arguments to pass when initiating the NAPALM driver (JSON format)
	NapalmArgs *map[string]interface{} `json:"napalm_args"`

	// NapalmDriver The name of the NAPALM driver to use when interacting with devices
	NapalmDriver  *string `json:"napalm_driver,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePlatformRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePlatformRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePlatformRequest.relationships.source.objects.Item.
type PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRequest Policy Serializer.
type PatchedBulkWritablePolicyRequest struct {
	CustomFieldData       *map[string]interface{}               `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]PolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]PolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}               `json:"custom_fields,omitempty"`
	Description           *string                               `json:"description,omitempty"`
	Id                    openapi_types.UUID                    `json:"id"`
	Name                  *string                               `json:"name,omitempty"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRequest.relationships.source.objects.Item.
type PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest PolicyRule Serializer.
type PatchedBulkWritablePolicyRuleRequest struct {
	CustomFieldData          *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Action                   *ActionEnum             `json:"action,omitempty"`
	CustomFields             *map[string]interface{} `json:"custom_fields,omitempty"`
	Description              *string                 `json:"description"`
	DestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                `json:"label,omitempty"`
					ObjectType *string                                                                                                                `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                         `json:"label,omitempty"`
					ObjectType *string                                                                                                         `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                           `json:"label,omitempty"`
					ObjectType *string                                                                                                           `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                      `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                                 `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                        `json:"tags,omitempty"`
	} `json:"destination_address_groups,omitempty"`
	DestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                                             `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                      `json:"label,omitempty"`
				ObjectType *string                                                                                      `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                    `json:"tags,omitempty"`
	} `json:"destination_addresses,omitempty"`
	DestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                                 `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`

			// Name Name of the service (e.g. HTTP)
			Name string `json:"name"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port          *string `json:"port"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                                `json:"label,omitempty"`
					ObjectType *string                                                                                                                `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                         `json:"label,omitempty"`
					ObjectType *string                                                                                                         `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                           `json:"label,omitempty"`
					ObjectType *string                                                                                                           `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                      `json:"tags,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                        `json:"tags,omitempty"`
	} `json:"destination_service_groups,omitempty"`
	DestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                   `json:"tags,omitempty"`
	} `json:"destination_services,omitempty"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest       `json:"destination_zone,omitempty"`
	Id              openapi_types.UUID `json:"id"`
	Index           *int               `json:"index"`
	Log             *bool              `json:"log,omitempty"`
	Name            *string            `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	RequestId           *string `json:"request_id"`
	SourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

			// Name Name descriptor for an address object type.
			Name string `json:"name"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                           `json:"label,omitempty"`
					ObjectType *string                                                                                                           `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                                    `json:"label,omitempty"`
					ObjectType *string                                                                                                    `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                      `json:"label,omitempty"`
					ObjectType *string                                                                                                      `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                                 `json:"tags,omitempty"`
		} `json:"address_objects,omitempty"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Name Name descriptor for a group address objects.
		Name          string `json:"name"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                            `json:"label,omitempty"`
				ObjectType *string                                                                                            `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                     `json:"label,omitempty"`
				ObjectType *string                                                                                     `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                       `json:"label,omitempty"`
				ObjectType *string                                                                                       `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                   `json:"tags,omitempty"`
	} `json:"source_address_groups,omitempty"`
	SourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDNRequest `json:"fqdn,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddressRequest `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange *NestedIPRangeRequest `json:"ip_range,omitempty"`

		// Name Name descriptor for an address object type.
		Name string `json:"name"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix        *NestedPrefixRequest `json:"prefix,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                 `json:"label,omitempty"`
				ObjectType *string                                                                                 `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                   `json:"label,omitempty"`
				ObjectType *string                                                                                   `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                               `json:"tags,omitempty"`
	} `json:"source_addresses,omitempty"`
	SourceUserGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`
		Name            string                  `json:"name"`
		Relationships   *struct {
			Destination *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status      *PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus `json:"status,omitempty"`
		Tags        *[]TagSerializerFieldRequest                                `json:"tags,omitempty"`
		UserObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

			// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
			Name          *string `json:"name,omitempty"`
			Relationships *struct {
				Destination *struct {
					Label      *string                                                                                                     `json:"label,omitempty"`
					ObjectType *string                                                                                                     `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
				} `json:"destination,omitempty"`
				Id   *openapi_types.UUID `json:"id,omitempty"`
				Name *string             `json:"name,omitempty"`
				Peer *struct {
					Label      *string                                                                                              `json:"label,omitempty"`
					ObjectType *string                                                                                              `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
				} `json:"peer,omitempty"`
				Source *struct {
					Label      *string                                                                                                `json:"label,omitempty"`
					ObjectType *string                                                                                                `json:"object_type,omitempty"`
					Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
				} `json:"source,omitempty"`
				Type *string `json:"type,omitempty"`
				Url  *string `json:"url,omitempty"`
			} `json:"relationships,omitempty"`
			Status *PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus `json:"status,omitempty"`
			Tags   *[]TagSerializerFieldRequest                                           `json:"tags,omitempty"`

			// Username Signifies the username in identify provider (e.g. john.smith)
			Username string `json:"username"`
		} `json:"user_objects,omitempty"`
	} `json:"source_user_groups,omitempty"`
	SourceUsers *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name          *string `json:"name,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                             `json:"label,omitempty"`
				ObjectType *string                                                                             `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                               `json:"label,omitempty"`
				ObjectType *string                                                                               `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritablePolicyRuleRequestSourceUsersStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                           `json:"tags,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"source_users,omitempty"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.AddressObjects.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsAddressObjectsStatus string

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddressGroups.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationAddressGroupsStatus string

// PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationAddresses.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationAddressesStatus string

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsIpProtocol string

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.ServiceObjects.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsServiceObjectsStatus string

// PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServiceGroups.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationServiceGroupsStatus string

// PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritablePolicyRuleRequestDestinationServicesIpProtocol string

// PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServices.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServices.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServices.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus defines model for PatchedBulkWritablePolicyRuleRequest.DestinationServices.Status.
type PatchedBulkWritablePolicyRuleRequestDestinationServicesStatus string

// PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.relationships.source.objects.Item.
type PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.AddressObjects.Status.
type PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsAddressObjectsStatus string

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddressGroups.Status.
type PatchedBulkWritablePolicyRuleRequestSourceAddressGroupsStatus string

// PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddresses.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceAddresses.Status.
type PatchedBulkWritablePolicyRuleRequestSourceAddressesStatus string

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.Status.
type PatchedBulkWritablePolicyRuleRequestSourceUserGroupsStatus string

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceUserGroups.UserObjects.Status.
type PatchedBulkWritablePolicyRuleRequestSourceUserGroupsUserObjectsStatus string

// PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUsers.Relationships.Destination.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUsers.Relationships.Peer.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePolicyRuleRequest.SourceUsers.Relationships.Source.Objects.Item.
type PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePolicyRuleRequestSourceUsersStatus defines model for PatchedBulkWritablePolicyRuleRequest.SourceUsers.Status.
type PatchedBulkWritablePolicyRuleRequestSourceUsersStatus string

// PatchedBulkWritablePowerFeedRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerFeedRequest struct {
	Amperage     *int                    `json:"amperage,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// MaxUtilization Maximum permissible draw (percentage)
	MaxUtilization *int       `json:"max_utilization,omitempty"`
	Name           *string    `json:"name,omitempty"`
	Phase          *PhaseEnum `json:"phase,omitempty"`

	// PowerPanel Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPanel    *NestedPowerPanelRequest `json:"power_panel,omitempty"`
	Rack          *NestedRackRequest       `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status  *PowerFeedStatusChoices      `json:"status,omitempty"`
	Supply  *SupplyEnum                  `json:"supply,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type    *PowerFeedTypeChoices        `json:"type,omitempty"`
	Voltage *int                         `json:"voltage,omitempty"`
}

// PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerFeedRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerFeedRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerFeedRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerOutletRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device  *NestedDeviceRequest `json:"device,omitempty"`
	FeedLeg *FeedLegEnum         `json:"feed_leg,omitempty"`
	Id      openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  *string `json:"name,omitempty"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort     *NestedPowerPortRequest `json:"power_port,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PowerOutletTypeChoices      `json:"type,omitempty"`
}

// PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerOutletRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerOutletRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerOutletRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerOutletTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	FeedLeg    *FeedLegEnum             `json:"feed_leg,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`
	Name  *string `json:"name,omitempty"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort     *NestedPowerPortTemplateRequest `json:"power_port,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PowerOutletTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerOutletTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerOutletTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerOutletTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPanelRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerPanelRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	RackGroup     *NestedRackGroupRequest `json:"rack_group"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site *NestedSiteRequest           `json:"site,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerPanelRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerPanelRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerPanelRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerPortRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`
	Id     openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int    `json:"maximum_draw"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PowerPortTypeChoices        `json:"type,omitempty"`
}

// PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerPortRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerPortRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerPortRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePowerPortTemplateRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int    `json:"maximum_draw"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PowerPortTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePowerPortTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePowerPortTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePowerPortTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePrefixRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritablePrefixRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsPool All IP addresses within this prefix are considered usable
	IsPool        *bool                  `json:"is_pool,omitempty"`
	Location      *NestedLocationRequest `json:"location"`
	Prefix        *string                `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRoleRequest           `json:"role"`
	Site   *NestedSiteRequest           `json:"site"`
	Status *PrefixStatusChoices         `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vlan   *NestedVLANRequest           `json:"vlan"`
	Vrf    *NestedVRFRequest            `json:"vrf"`
}

// PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritablePrefixRequest.relationships.destination.objects.Item.
type PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritablePrefixRequest.relationships.peer.objects.Item.
type PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritablePrefixRequest.relationships.source.objects.Item.
type PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderLCMRequest API serializer.
type PatchedBulkWritableProviderLCMRequest struct {
	Comments        *string                 `json:"comments,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Email           *openapi_types.Email    `json:"email,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            *string                 `json:"name,omitempty"`
	Phone           *string                 `json:"phone,omitempty"`
	PhysicalAddress *string                 `json:"physical_address,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableProviderLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableProviderLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableProviderLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderNetworkRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableProviderNetworkRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`
	Name         *string                 `json:"name,omitempty"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider      *NestedProviderRequest `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableProviderNetworkRequest.relationships.destination.objects.Item.
type PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableProviderNetworkRequest.relationships.peer.objects.Item.
type PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableProviderNetworkRequest.relationships.source.objects.Item.
type PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableProviderRequest struct {
	Account      *string `json:"account,omitempty"`
	AdminContact *string `json:"admin_contact,omitempty"`

	// Asn 32-bit autonomous system number
	Asn           *int64                  `json:"asn"`
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	NocContact    *string                 `json:"noc_contact,omitempty"`
	PortalUrl     *string                 `json:"portal_url,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableProviderRequest.relationships.destination.objects.Item.
type PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableProviderRequest.relationships.peer.objects.Item.
type PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableProviderRequest.relationships.source.objects.Item.
type PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRIRRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRIRRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// IsPrivate IP space managed by this RIR is considered private
	IsPrivate     *bool   `json:"is_private,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRIRRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRIRRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRIRRequest.relationships.source.objects.Item.
type PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRackGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *NestedRackGroupRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site *NestedSiteRequest `json:"site,omitempty"`
	Slug *string            `json:"slug,omitempty"`
}

// PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRackGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRackGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRackGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRackRequest struct {
	// AssetTag A unique tag used to identify this rack
	AssetTag     *string                 `json:"asset_tag"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DescUnits Units are numbered top-to-bottom
	DescUnits *bool `json:"desc_units,omitempty"`

	// FacilityId Locally-assigned identifier
	FacilityId *string                 `json:"facility_id"`
	Group      *NestedRackGroupRequest `json:"group"`
	Id         openapi_types.UUID      `json:"id"`
	Location   *NestedLocationRequest  `json:"location"`
	Name       *string                 `json:"name,omitempty"`

	// OuterDepth Outer dimension of rack (depth)
	OuterDepth *int           `json:"outer_depth"`
	OuterUnit  *OuterUnitEnum `json:"outer_unit,omitempty"`

	// OuterWidth Outer dimension of rack (width)
	OuterWidth    *int `json:"outer_width"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRackRoleRequest `json:"role"`
	Serial *string                `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   *NestedSiteRequest           `json:"site,omitempty"`
	Status *RackStatusChoices           `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Type   *RackTypeChoices             `json:"type,omitempty"`

	// UHeight Height in rack units
	UHeight *int       `json:"u_height,omitempty"`
	Width   *WidthEnum `json:"width,omitempty"`
}

// PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRackRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRackRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRackRequest.relationships.source.objects.Item.
type PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackReservationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRackReservationRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Rack Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rack          *NestedRackRequest `json:"rack,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Units  *map[string]interface{}      `json:"units,omitempty"`

	// User Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	User *NestedUserRequest `json:"user,omitempty"`
}

// PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRackReservationRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRackReservationRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRackReservationRequest.relationships.source.objects.Item.
type PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRackRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRackRoleRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRackRoleRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRackRoleRequest.relationships.source.objects.Item.
type PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRearPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device *NestedDeviceRequest `json:"device,omitempty"`
	Id     openapi_types.UUID   `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PortTypeChoices             `json:"type,omitempty"`
}

// PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRearPortRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRearPortRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRearPortRequest.relationships.source.objects.Item.
type PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRearPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType *NestedDeviceTypeRequest `json:"device_type,omitempty"`
	Id         openapi_types.UUID       `json:"id"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PortTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRearPortTemplateRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRearPortTemplateRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRearPortTemplateRequest.relationships.source.objects.Item.
type PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRegionRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRegionRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *NestedRegionRequest    `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRegionRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRegionRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRegionRequest.relationships.source.objects.Item.
type PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRegularExpressionValidationRuleRequest Serializer for `RegularExpressionValidationRule` objects.
type PatchedBulkWritableRegularExpressionValidationRuleRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Enabled     *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage      *string            `json:"error_message"`
	Field             *string            `json:"field,omitempty"`
	Id                openapi_types.UUID `json:"id"`
	Name              *string            `json:"name,omitempty"`
	RegularExpression *string            `json:"regular_expression,omitempty"`
	Slug              *string            `json:"slug,omitempty"`
}

// PatchedBulkWritableRelationshipAssociationRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableRelationshipAssociationRequest struct {
	DestinationId   *openapi_types.UUID `json:"destination_id,omitempty"`
	DestinationType *string             `json:"destination_type,omitempty"`
	Id              openapi_types.UUID  `json:"id"`

	// Relationship Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Relationship *NestedRelationshipRequest `json:"relationship,omitempty"`
	SourceId     *openapi_types.UUID        `json:"source_id,omitempty"`
	SourceType   *string                    `json:"source_type,omitempty"`
}

// PatchedBulkWritableRelationshipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableRelationshipRequest struct {
	Description *string `json:"description,omitempty"`

	// DestinationFilter Filterset filter matching the applicable destination objects of the selected type
	DestinationFilter *map[string]interface{} `json:"destination_filter"`

	// DestinationHidden Hide this relationship on the destination object.
	DestinationHidden *bool `json:"destination_hidden,omitempty"`

	// DestinationLabel Label for related source objects, as displayed on the destination object.
	DestinationLabel *string            `json:"destination_label,omitempty"`
	DestinationType  *string            `json:"destination_type,omitempty"`
	Id               openapi_types.UUID `json:"id"`

	// Name Name of the relationship as displayed to users
	Name *string `json:"name,omitempty"`

	// RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
	RequiredOn *PatchedBulkWritableRelationshipRequest_RequiredOn `json:"required_on,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// SourceFilter Filterset filter matching the applicable source objects of the selected type
	SourceFilter *map[string]interface{} `json:"source_filter"`

	// SourceHidden Hide this relationship on the source object.
	SourceHidden *bool `json:"source_hidden,omitempty"`

	// SourceLabel Label for related destination objects, as displayed on the source object.
	SourceLabel *string `json:"source_label,omitempty"`
	SourceType  *string `json:"source_type,omitempty"`

	// Type Cardinality of this relationship
	Type *RelationshipTypeChoices `json:"type,omitempty"`
}

// PatchedBulkWritableRelationshipRequest_RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
type PatchedBulkWritableRelationshipRequest_RequiredOn struct {
	union json.RawMessage
}

// PatchedBulkWritableRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRoleRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug   *string `json:"slug,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRoleRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRoleRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRoleRequest.relationships.source.objects.Item.
type PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRouteTargetRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableRouteTargetRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Id           openapi_types.UUID      `json:"id"`

	// Name Route target value (formatted in accordance with RFC 4360)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableRouteTargetRequest.relationships.destination.objects.Item.
type PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableRouteTargetRequest.relationships.peer.objects.Item.
type PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableRouteTargetRequest.relationships.source.objects.Item.
type PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretRequest Serializer for `Secret` objects.
type PatchedBulkWritableSecretRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Parameters    *map[string]interface{} `json:"parameters,omitempty"`
	Provider      *string                 `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableSecretRequest.relationships.destination.objects.Item.
type PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableSecretRequest.relationships.peer.objects.Item.
type PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableSecretRequest.relationships.source.objects.Item.
type PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretsGroupAssociationRequest Serializer for `SecretsGroupAssociation` objects.
type PatchedBulkWritableSecretsGroupAssociationRequest struct {
	AccessType *AccessTypeEnum `json:"access_type,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group *NestedSecretsGroupRequest `json:"group,omitempty"`
	Id    openapi_types.UUID         `json:"id"`

	// Secret Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Secret     *NestedSecretRequest `json:"secret,omitempty"`
	SecretType *SecretTypeEnum      `json:"secret_type,omitempty"`
}

// PatchedBulkWritableSecretsGroupRequest Serializer for `SecretsGroup` objects.
type PatchedBulkWritableSecretsGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableSecretsGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableSecretsGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableSecretsGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequest ServiceObjectGroup Serializer.
type PatchedBulkWritableServiceObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            *string                 `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                                `json:"label,omitempty"`
			ObjectType *string                                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ServiceObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol `json:"ip_protocol"`

		// Name Name of the service (e.g. HTTP)
		Name string `json:"name"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port          *string `json:"port"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                               `json:"label,omitempty"`
				ObjectType *string                                                                                               `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                        `json:"label,omitempty"`
				ObjectType *string                                                                                        `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                          `json:"label,omitempty"`
				ObjectType *string                                                                                          `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                      `json:"tags,omitempty"`
	} `json:"service_objects,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PatchedBulkWritableServiceObjectGroupRequestServiceObjectsIpProtocol string

// PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableServiceObjectGroupRequest.ServiceObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus defines model for PatchedBulkWritableServiceObjectGroupRequest.ServiceObjects.Status.
type PatchedBulkWritableServiceObjectGroupRequestServiceObjectsStatus string

// PatchedBulkWritableServiceObjectRequest ServiceObject Serializer.
type PatchedBulkWritableServiceObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol *IpProtocolEnum `json:"ip_protocol,omitempty"`

	// Name Name of the service (e.g. HTTP)
	Name *string `json:"name,omitempty"`

	// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
	Port          *string `json:"port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableServiceObjectRequest.relationships.destination.objects.Item.
type PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableServiceObjectRequest.relationships.peer.objects.Item.
type PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableServiceObjectRequest.relationships.source.objects.Item.
type PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableServiceRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *NestedDeviceRequest    `json:"device"`
	Id           openapi_types.UUID      `json:"id"`
	Ipaddresses  *[]struct {
		Address string `json:"address"`
	} `json:"ipaddresses,omitempty"`
	Name          *string       `json:"name,omitempty"`
	Ports         *[]int        `json:"ports,omitempty"`
	Protocol      *ProtocolEnum `json:"protocol,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	VirtualMachine *NestedVirtualMachineRequest `json:"virtual_machine"`
}

// PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableServiceRequest.relationships.destination.objects.Item.
type PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableServiceRequest.relationships.peer.objects.Item.
type PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableServiceRequest.relationships.source.objects.Item.
type PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSiteRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableSiteRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	Comments     *string                 `json:"comments,omitempty"`
	ContactEmail *openapi_types.Email    `json:"contact_email,omitempty"`
	ContactName  *string                 `json:"contact_name,omitempty"`
	ContactPhone *string                 `json:"contact_phone,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Facility Local facility ID or description
	Facility *string            `json:"facility,omitempty"`
	Id       openapi_types.UUID `json:"id"`

	// Latitude GPS coordinate (latitude)
	Latitude *string `json:"latitude"`

	// Longitude GPS coordinate (longitude)
	Longitude       *string              `json:"longitude"`
	Name            *string              `json:"name,omitempty"`
	PhysicalAddress *string              `json:"physical_address,omitempty"`
	Region          *NestedRegionRequest `json:"region"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ShippingAddress *string                      `json:"shipping_address,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Status          *LocationStatusChoices       `json:"status,omitempty"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant          *NestedTenantRequest         `json:"tenant"`
	TimeZone        *string                      `json:"time_zone"`
}

// PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableSiteRequest.relationships.destination.objects.Item.
type PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableSiteRequest.relationships.peer.objects.Item.
type PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableSiteRequest.relationships.source.objects.Item.
type PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareImageLCMRequest REST API serializer for SoftwareImageLCM records.
type PatchedBulkWritableSoftwareImageLCMRequest struct {
	CustomFields      *map[string]interface{} `json:"custom_fields,omitempty"`
	DefaultImage      *bool                   `json:"default_image,omitempty"`
	DeviceTypes       *[]openapi_types.UUID   `json:"device_types,omitempty"`
	DownloadUrl       *string                 `json:"download_url,omitempty"`
	Id                openapi_types.UUID      `json:"id"`
	ImageFileChecksum *string                 `json:"image_file_checksum,omitempty"`
	ImageFileName     *string                 `json:"image_file_name,omitempty"`
	InventoryItems    *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags        *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Relationships     *struct {
		Destination *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software *NestedSoftwareLCMRequest    `json:"software,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableSoftwareImageLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableSoftwareImageLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableSoftwareImageLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareLCMRequest REST API serializer for SoftwareLCM records.
type PatchedBulkWritableSoftwareLCMRequest struct {
	Alias        *string                 `json:"alias"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DevicePlatform Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DevicePlatform   *NestedPlatformRequest `json:"device_platform,omitempty"`
	DocumentationUrl *string                `json:"documentation_url,omitempty"`
	EndOfSupport     *openapi_types.Date    `json:"end_of_support"`
	Id               openapi_types.UUID     `json:"id"`
	LongTermSupport  *bool                  `json:"long_term_support,omitempty"`
	PreRelease       *bool                  `json:"pre_release,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate    *openapi_types.Date `json:"release_date"`
	SoftwareImages *[]struct {
		DefaultImage      *bool                 `json:"default_image,omitempty"`
		DeviceTypes       *[]openapi_types.UUID `json:"device_types,omitempty"`
		DownloadUrl       *string               `json:"download_url,omitempty"`
		ImageFileChecksum *string               `json:"image_file_checksum,omitempty"`
		ImageFileName     string                `json:"image_file_name"`
		InventoryItems    *[]openapi_types.UUID `json:"inventory_items,omitempty"`
		ObjectTags        *[]openapi_types.UUID `json:"object_tags,omitempty"`
	} `json:"software_images,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Version *string                      `json:"version,omitempty"`
}

// PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableSoftwareLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableSoftwareLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableSoftwareLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableStatusRequest Serializer for `Status` objects.
type PatchedBulkWritableStatusRequest struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  *[]string               `json:"content_types,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableStatusRequest.relationships.destination.objects.Item.
type PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableStatusRequest.relationships.peer.objects.Item.
type PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableStatusRequest.relationships.source.objects.Item.
type PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTagSerializerVersion13Request Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableTagSerializerVersion13Request struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  *[]string               `json:"content_types,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableTagSerializerVersion13Request.relationships.destination.objects.Item.
type PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableTagSerializerVersion13Request.relationships.peer.objects.Item.
type PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item defines model for PatchedBulkWritableTagSerializerVersion13Request.relationships.source.objects.Item.
type PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableTenantGroupRequest struct {
	CustomFields  *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description   *string                   `json:"description,omitempty"`
	Id            openapi_types.UUID        `json:"id"`
	Name          *string                   `json:"name,omitempty"`
	Parent        *NestedTenantGroupRequest `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableTenantGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableTenantGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableTenantGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableTenantRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group         *NestedTenantGroupRequest `json:"group,omitempty"`
	Id            openapi_types.UUID        `json:"id"`
	Name          *string                   `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableTenantRequest.relationships.destination.objects.Item.
type PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableTenantRequest.relationships.peer.objects.Item.
type PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableTenantRequest.relationships.source.objects.Item.
type PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableTokenRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableTokenRequest struct {
	Description *string            `json:"description,omitempty"`
	Expires     *time.Time         `json:"expires"`
	Id          openapi_types.UUID `json:"id"`
	Key         *string            `json:"key,omitempty"`

	// WriteEnabled Permit create/update/delete operations using this key
	WriteEnabled *bool `json:"write_enabled,omitempty"`
}

// PatchedBulkWritableUserObjectGroupRequest UserObjectGroup Serializer.
type PatchedBulkWritableUserObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Id              openapi_types.UUID      `json:"id"`
	Name            *string                 `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      *Status8f7Enum               `json:"status,omitempty"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UserObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name          *string `json:"name,omitempty"`
		Relationships *struct {
			Destination *struct {
				Label      *string                                                                                         `json:"label,omitempty"`
				ObjectType *string                                                                                         `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
			} `json:"destination,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`
			Name *string             `json:"name,omitempty"`
			Peer *struct {
				Label      *string                                                                                  `json:"label,omitempty"`
				ObjectType *string                                                                                  `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
			} `json:"peer,omitempty"`
			Source *struct {
				Label      *string                                                                                    `json:"label,omitempty"`
				ObjectType *string                                                                                    `json:"object_type,omitempty"`
				Objects    *[]PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item `json:"objects,omitempty"`
			} `json:"source,omitempty"`
			Type *string `json:"type,omitempty"`
			Url  *string `json:"url,omitempty"`
		} `json:"relationships,omitempty"`
		Status *PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus `json:"status,omitempty"`
		Tags   *[]TagSerializerFieldRequest                                `json:"tags,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"user_objects,omitempty"`
}

// PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.UserObjects.Relationships.Destination.Objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.UserObjects.Relationships.Peer.Objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item defines model for PatchedBulkWritableUserObjectGroupRequest.UserObjects.Relationships.Source.Objects.Item.
type PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus defines model for PatchedBulkWritableUserObjectGroupRequest.UserObjects.Status.
type PatchedBulkWritableUserObjectGroupRequestUserObjectsStatus string

// PatchedBulkWritableUserObjectRequest UserObject Serializer.
type PatchedBulkWritableUserObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Id              openapi_types.UUID      `json:"id"`

	// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Username Signifies the username in identify provider (e.g. john.smith)
	Username *string `json:"username,omitempty"`
}

// PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableUserObjectRequest.relationships.destination.objects.Item.
type PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableUserObjectRequest.relationships.peer.objects.Item.
type PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableUserObjectRequest.relationships.source.objects.Item.
type PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableUserRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableUserRequest struct {
	DateJoined *time.Time           `json:"date_joined,omitempty"`
	Email      *openapi_types.Email `json:"email,omitempty"`
	FirstName  *string              `json:"first_name,omitempty"`
	Groups     *[]struct {
		Name string `json:"name"`
	} `json:"groups,omitempty"`
	Id openapi_types.UUID `json:"id"`

	// IsActive Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
	IsActive *bool `json:"is_active,omitempty"`

	// IsStaff Designates whether the user can log into this admin site.
	IsStaff  *bool   `json:"is_staff,omitempty"`
	LastName *string `json:"last_name,omitempty"`
	Password *string `json:"password,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username *string `json:"username,omitempty"`
}

// PatchedBulkWritableVLANGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVLANGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *NestedSiteRequest `json:"site"`
	Slug *string            `json:"slug,omitempty"`
}

// PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVLANGroupRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVLANGroupRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVLANGroupRequest.relationships.source.objects.Item.
type PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVLANRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVLANRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *NestedVLANGroupRequest `json:"group"`
	Id            openapi_types.UUID      `json:"id"`
	Location      *NestedLocationRequest  `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedRoleRequest           `json:"role"`
	Site   *NestedSiteRequest           `json:"site"`
	Status *VLANStatusChoices           `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vid    *int                         `json:"vid,omitempty"`
}

// PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVLANRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVLANRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVLANRequest.relationships.source.objects.Item.
type PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVMInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVMInterfaceRequest struct {
	Bridge          *NestedVMInterfaceRequest `json:"bridge"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Enabled         *bool                     `json:"enabled,omitempty"`
	Id              openapi_types.UUID        `json:"id"`
	MacAddress      *string                   `json:"mac_address"`
	Mode            *ModeEnum                 `json:"mode,omitempty"`
	Mtu             *int                      `json:"mtu"`
	Name            *string                   `json:"name,omitempty"`
	ParentInterface *NestedVMInterfaceRequest `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status      *InterfaceStatusChoices `json:"status,omitempty"`
	TaggedVlans *[]struct {
		Name string `json:"name"`
		Vid  int    `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UntaggedVlan *NestedVLANRequest           `json:"untagged_vlan"`

	// VirtualMachine Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	VirtualMachine *NestedVirtualMachineRequest `json:"virtual_machine,omitempty"`
}

// PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVMInterfaceRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVMInterfaceRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVMInterfaceRequest.relationships.source.objects.Item.
type PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVRFRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVRFRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// EnforceUnique Prevent duplicate prefixes/IP addresses within this VRF
	EnforceUnique *bool `json:"enforce_unique,omitempty"`
	ExportTargets *[]struct {
		// Name Route target value (formatted in accordance with RFC 4360)
		Name string `json:"name"`
	} `json:"export_targets,omitempty"`
	Id            openapi_types.UUID `json:"id"`
	ImportTargets *[]struct {
		// Name Route target value (formatted in accordance with RFC 4360)
		Name string `json:"name"`
	} `json:"import_targets,omitempty"`
	Name *string `json:"name,omitempty"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd            *string `json:"rd"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
}

// PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVRFRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVRFRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVRFRequest.relationships.source.objects.Item.
type PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableValidatedSoftwareLCMRequest REST API serializer for ValidatedSoftwareLCM records.
type PatchedBulkWritableValidatedSoftwareLCMRequest struct {
	CustomFields   *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRoles    *[]openapi_types.UUID   `json:"device_roles,omitempty"`
	DeviceTypes    *[]openapi_types.UUID   `json:"device_types,omitempty"`
	Devices        *[]openapi_types.UUID   `json:"devices,omitempty"`
	End            *openapi_types.Date     `json:"end"`
	Id             openapi_types.UUID      `json:"id"`
	InventoryItems *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags     *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Preferred      *bool                   `json:"preferred,omitempty"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software *NestedSoftwareLCMRequest    `json:"software,omitempty"`
	Start    *openapi_types.Date          `json:"start,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableValidatedSoftwareLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableValidatedSoftwareLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableValidatedSoftwareLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualChassisRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVirtualChassisRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Domain        *string                 `json:"domain,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Master        *NestedDeviceRequest    `json:"master"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVirtualChassisRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVirtualChassisRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVirtualChassisRequest.relationships.source.objects.Item.
type PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualMachineWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedBulkWritableVirtualMachineWithConfigContextRequest struct {
	// Cluster Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Cluster            *NestedClusterRequest             `json:"cluster,omitempty"`
	Comments           *string                           `json:"comments,omitempty"`
	CustomFields       *map[string]interface{}           `json:"custom_fields,omitempty"`
	Disk               *int                              `json:"disk"`
	Id                 openapi_types.UUID                `json:"id"`
	LocalContextData   *map[string]interface{}           `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchemaRequest `json:"local_context_schema"`
	Memory             *int                              `json:"memory"`
	Name               *string                           `json:"name,omitempty"`
	Platform           *NestedPlatformRequest            `json:"platform"`
	PrimaryIp4         *NestedIPAddressRequest           `json:"primary_ip4"`
	PrimaryIp6         *NestedIPAddressRequest           `json:"primary_ip6"`
	Relationships      *struct {
		Destination *struct {
			Label      *string                                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *NestedDeviceRoleRequest     `json:"role"`
	Status *VirtualMachineStatusChoices `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *NestedTenantRequest         `json:"tenant"`
	Vcpus  *int                         `json:"vcpus"`
}

// PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVirtualMachineWithConfigContextRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVirtualMachineWithConfigContextRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVirtualMachineWithConfigContextRequest.relationships.source.objects.Item.
type PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVulnerabilityLCMRequest REST API serializer for VulnerabilityLCM records.
type PatchedBulkWritableVulnerabilityLCMRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Id            openapi_types.UUID      `json:"id"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status4f5Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableVulnerabilityLCMRequest.relationships.destination.objects.Item.
type PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableVulnerabilityLCMRequest.relationships.peer.objects.Item.
type PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableVulnerabilityLCMRequest.relationships.source.objects.Item.
type PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableWebhookRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedBulkWritableWebhookRequest struct {
	// AdditionalHeaders User-supplied HTTP headers to be sent with the request in addition to the HTTP content type. Headers should be defined in the format <code>Name: Value</code>. Jinja2 template processing is support with the same context as the request body (below).
	AdditionalHeaders *string `json:"additional_headers,omitempty"`

	// BodyTemplate Jinja2 template for a custom request body. If blank, a JSON object representing the change will be included. Available context data includes: <code>event</code>, <code>model</code>, <code>timestamp</code>, <code>username</code>, <code>request_id</code>, and <code>data</code>.
	BodyTemplate *string `json:"body_template,omitempty"`

	// CaFilePath The specific CA certificate file to use for SSL verification. Leave blank to use the system defaults.
	CaFilePath   *string   `json:"ca_file_path"`
	ContentTypes *[]string `json:"content_types,omitempty"`

	// HttpContentType The complete list of official content types is available <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.
	HttpContentType *string            `json:"http_content_type,omitempty"`
	HttpMethod      *HttpMethodEnum    `json:"http_method,omitempty"`
	Id              openapi_types.UUID `json:"id"`
	Name            *string            `json:"name,omitempty"`

	// PayloadUrl A POST will be sent to this URL when the webhook is called.
	PayloadUrl *string `json:"payload_url,omitempty"`

	// Secret When provided, the request will include a 'X-Hook-Signature' header containing a HMAC hex digest of the payload body using the secret as the key. The secret is not transmitted in the request.
	Secret *string `json:"secret,omitempty"`

	// SslVerification Enable SSL certificate verification. Disable with caution!
	SslVerification *bool `json:"ssl_verification,omitempty"`

	// TypeCreate Call this webhook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this webhook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this webhook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// PatchedBulkWritableZoneRequest Zone Serializer.
type PatchedBulkWritableZoneRequest struct {
	CustomFieldData *map[string]interface{}   `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Id              openapi_types.UUID        `json:"id"`
	Interfaces      *[]NestedInterfaceRequest `json:"interfaces,omitempty"`

	// Name Name of the zone (e.g. trust)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item defines model for PatchedBulkWritableZoneRequest.relationships.destination.objects.Item.
type PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item defines model for PatchedBulkWritableZoneRequest.relationships.peer.objects.Item.
type PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item defines model for PatchedBulkWritableZoneRequest.relationships.source.objects.Item.
type PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedCapircaPolicyRequest CapircaPolicy Serializer.
type PatchedCapircaPolicyRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	Cfg             *string                      `json:"cfg"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Device          *openapi_types.UUID          `json:"device"`
	Net             *string                      `json:"net"`
	Pol             *string                      `json:"pol"`
	Svc             *string                      `json:"svc"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedCircuitMaintenanceCircuitImpactRequest Serializer for API.
type PatchedCircuitMaintenanceCircuitImpactRequest struct {
	Circuit     *openapi_types.UUID                                   `json:"circuit,omitempty"`
	Impact      *PatchedCircuitMaintenanceCircuitImpactRequest_Impact `json:"impact"`
	Maintenance *openapi_types.UUID                                   `json:"maintenance,omitempty"`
}

// PatchedCircuitMaintenanceCircuitImpactRequest_Impact defines model for PatchedCircuitMaintenanceCircuitImpactRequest.Impact.
type PatchedCircuitMaintenanceCircuitImpactRequest_Impact struct {
	union json.RawMessage
}

// PatchedCircuitMaintenanceRequest Serializer for API.
type PatchedCircuitMaintenanceRequest struct {
	Ack         *bool                                    `json:"ack"`
	Description *string                                  `json:"description"`
	EndTime     *time.Time                               `json:"end_time,omitempty"`
	Name        *string                                  `json:"name,omitempty"`
	StartTime   *time.Time                               `json:"start_time,omitempty"`
	Status      *PatchedCircuitMaintenanceRequest_Status `json:"status"`
}

// PatchedCircuitMaintenanceRequest_Status defines model for PatchedCircuitMaintenanceRequest.Status.
type PatchedCircuitMaintenanceRequest_Status struct {
	union json.RawMessage
}

// PatchedCircuitTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedCircuitTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedCircuitTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedCircuitTypeRequest.relationships.destination.objects.Item.
type PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedCircuitTypeRequest.relationships.peer.objects.Item.
type PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedCircuitTypeRequest_Relationships_Source_Objects_Item defines model for PatchedCircuitTypeRequest.relationships.source.objects.Item.
type PatchedCircuitTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedClusterGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedClusterGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedClusterGroupRequest.relationships.destination.objects.Item.
type PatchedClusterGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedClusterGroupRequest.relationships.peer.objects.Item.
type PatchedClusterGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterGroupRequest_Relationships_Source_Objects_Item defines model for PatchedClusterGroupRequest.relationships.source.objects.Item.
type PatchedClusterGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedClusterTypeRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedClusterTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedClusterTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedClusterTypeRequest.relationships.destination.objects.Item.
type PatchedClusterTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedClusterTypeRequest.relationships.peer.objects.Item.
type PatchedClusterTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedClusterTypeRequest_Relationships_Source_Objects_Item defines model for PatchedClusterTypeRequest.relationships.source.objects.Item.
type PatchedClusterTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedCommandTokenRequest API serializer for interacting with CommandToken objects.
type PatchedCommandTokenRequest struct {
	// Comment Optional: Enter description of token
	Comment  *string       `json:"comment,omitempty"`
	Platform *PlatformEnum `json:"platform,omitempty"`

	// Token Token given by chat platform for signing or command validation
	Token *string `json:"token,omitempty"`
}

// PatchedComplianceFeatureRequest Serializer for ComplianceFeature object.
type PatchedComplianceFeatureRequest struct {
	CustomFieldData *map[string]interface{}      `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description     *string                      `json:"description,omitempty"`
	Name            *string                      `json:"name,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedComplianceRuleRequest Serializer for ComplianceRule object.
type PatchedComplianceRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// ConfigOrdered Whether or not the configuration order matters, such as in ACLs.
	ConfigOrdered *bool `json:"config_ordered,omitempty"`

	// ConfigType Whether the config is in cli or json/structured format.
	ConfigType   *ConfigTypeEnum         `json:"config_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Feature      *openapi_types.UUID     `json:"feature,omitempty"`

	// MatchConfig The config to match that is matched based on the parent most configuration. e.g. `router bgp` or `ntp`.
	MatchConfig *string                      `json:"match_config"`
	Platform    *openapi_types.UUID          `json:"platform,omitempty"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedComputedFieldRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedComputedFieldRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Description *string `json:"description,omitempty"`

	// FallbackValue Fallback value (if any) to be output for the field in the case of a template rendering error.
	FallbackValue *string `json:"fallback_value,omitempty"`

	// Label Name of the field as displayed to users
	Label *string `json:"label,omitempty"`

	// Slug Internal field name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// Template Jinja2 template code for field value
	Template *string `json:"template,omitempty"`
	Weight   *int    `json:"weight,omitempty"`
}

// PatchedConfigComplianceRequest Serializer for ConfigCompliance object.
type PatchedConfigComplianceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// Actual Actual Configuration for feature
	Actual        *map[string]interface{} `json:"actual,omitempty"`
	Compliance    *bool                   `json:"compliance"`
	ComplianceInt *int                    `json:"compliance_int"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device The device
	Device *openapi_types.UUID `json:"device,omitempty"`

	// Extra Configuration that should not be on the device.
	Extra *map[string]interface{} `json:"extra,omitempty"`

	// Intended Intended Configuration for feature
	Intended *map[string]interface{} `json:"intended,omitempty"`

	// Missing Configuration that should be on the device.
	Missing *map[string]interface{}      `json:"missing,omitempty"`
	Ordered *bool                        `json:"ordered,omitempty"`
	Rule    *openapi_types.UUID          `json:"rule,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedConfigContextSchemaRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedConfigContextSchemaRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DataSchema A JSON Schema document which is used to validate a config context object.
	DataSchema       *map[string]interface{} `json:"data_schema,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Name             *string                 `json:"name,omitempty"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item defines model for PatchedConfigContextSchemaRequest.relationships.destination.objects.Item.
type PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item defines model for PatchedConfigContextSchemaRequest.relationships.peer.objects.Item.
type PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item defines model for PatchedConfigContextSchemaRequest.relationships.source.objects.Item.
type PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedConfigRemoveRequest Serializer for ConfigRemove object.
type PatchedConfigRemoveRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Platform        *openapi_types.UUID     `json:"platform,omitempty"`

	// Regex Regex pattern used to remove a line from the backup configuration.
	Regex *string                      `json:"regex,omitempty"`
	Tags  *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedConfigReplaceRequest Serializer for ConfigReplace object.
type PatchedConfigReplaceRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Platform        *openapi_types.UUID     `json:"platform,omitempty"`

	// Regex Regex pattern that will be found and replaced with 'replaced text'.
	Regex *string `json:"regex,omitempty"`

	// Replace Text that will be inserted in place of Regex pattern match.
	Replace *string                      `json:"replace,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedCustomFieldSerializerVersion12Request Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedCustomFieldSerializerVersion12Request struct {
	ContentTypes *[]string `json:"content_types,omitempty"`

	// Default Default value for the field (must be a JSON value). Encapsulate strings with double quotes (e.g. "Foo").
	Default *map[string]interface{} `json:"default"`

	// Description A helpful description for this field.
	Description *string          `json:"description,omitempty"`
	FilterLogic *FilterLogicEnum `json:"filter_logic,omitempty"`
	Label       *string          `json:"label,omitempty"`

	// Name Human-readable unique name of this field.
	Name *string `json:"name,omitempty"`

	// Required If true, this field is required when creating new objects or editing an existing object.
	Required *bool                   `json:"required,omitempty"`
	Slug     *string                 `json:"slug,omitempty"`
	Type     *CustomFieldTypeChoices `json:"type,omitempty"`

	// ValidationMaximum Maximum allowed value (for numeric fields).
	ValidationMaximum *int64 `json:"validation_maximum"`

	// ValidationMinimum Minimum allowed value (for numeric fields).
	ValidationMinimum *int64 `json:"validation_minimum"`

	// ValidationRegex Regular expression to enforce on text field values. Use ^ and $ to force matching of entire string. For example, <code>^[A-Z]{3}$</code> will limit values to exactly three uppercase letters. Regular expression on select and multi-select will be applied at <code>Custom Field Choices</code> definition.
	ValidationRegex *string `json:"validation_regex,omitempty"`

	// Weight Fields with higher weights appear lower in a form.
	Weight *int `json:"weight,omitempty"`
}

// PatchedCustomLinkRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedCustomLinkRequest struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *ButtonClassEnum `json:"button_class,omitempty"`
	ContentType *string          `json:"content_type,omitempty"`

	// GroupName Links with the same group will appear as a dropdown menu
	GroupName *string `json:"group_name,omitempty"`
	Name      *string `json:"name,omitempty"`

	// NewWindow Force link to open in a new window
	NewWindow *bool `json:"new_window,omitempty"`

	// TargetUrl Jinja2 template code for link URL. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>.
	TargetUrl *string `json:"target_url,omitempty"`

	// Text Jinja2 template code for link text. Reference the object as <code>{{ obj }}</code> such as <code>{{ obj.platform.slug }}</code>. Links which render as empty text will not be displayed.
	Text   *string `json:"text,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// PatchedDeviceRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedDeviceRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedDeviceRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// VmRole Virtual machines may be assigned to this role
	VmRole *bool `json:"vm_role,omitempty"`
}

// PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedDeviceRoleRequest.relationships.destination.objects.Item.
type PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedDeviceRoleRequest.relationships.peer.objects.Item.
type PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedDeviceRoleRequest_Relationships_Source_Objects_Item defines model for PatchedDeviceRoleRequest.relationships.source.objects.Item.
type PatchedDeviceRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedDynamicGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedDynamicGroupRequest struct {
	ContentType  *string                 `json:"content_type,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Filter A JSON-encoded dictionary of filter parameters for group membership
	Filter *map[string]interface{} `json:"filter,omitempty"`

	// Name Dynamic Group name
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedDynamicGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Slug Unique slug
	Slug *string `json:"slug,omitempty"`
}

// PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedDynamicGroupRequest.relationships.destination.objects.Item.
type PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedDynamicGroupRequest.relationships.peer.objects.Item.
type PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedDynamicGroupRequest_Relationships_Source_Objects_Item defines model for PatchedDynamicGroupRequest.relationships.source.objects.Item.
type PatchedDynamicGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedExportTemplateRequest Extend ValidatedModelSerializer with a `relationships` field.
type PatchedExportTemplateRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Description *string `json:"description,omitempty"`

	// FileExtension Extension to append to the rendered filename
	FileExtension *string `json:"file_extension,omitempty"`

	// MimeType Defaults to <code>text/plain</code>
	MimeType         *string             `json:"mime_type,omitempty"`
	Name             *string             `json:"name,omitempty"`
	OwnerContentType *string             `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID `json:"owner_object_id"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedExportTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedExportTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedExportTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TemplateCode The list of objects being exported is passed as a context variable named <code>queryset</code>.
	TemplateCode *string `json:"template_code,omitempty"`
}

// PatchedExportTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedExportTemplateRequest.relationships.destination.objects.Item.
type PatchedExportTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedExportTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedExportTemplateRequest.relationships.peer.objects.Item.
type PatchedExportTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedExportTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedExportTemplateRequest.relationships.source.objects.Item.
type PatchedExportTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedGoldenConfigRequest Serializer for GoldenConfig object.
type PatchedGoldenConfigRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupConfig Full backup config for device.
	BackupConfig          *string    `json:"backup_config,omitempty"`
	BackupLastAttemptDate *time.Time `json:"backup_last_attempt_date"`
	BackupLastSuccessDate *time.Time `json:"backup_last_success_date"`

	// ComplianceConfig Full config diff for device.
	ComplianceConfig          *string                 `json:"compliance_config,omitempty"`
	ComplianceLastAttemptDate *time.Time              `json:"compliance_last_attempt_date"`
	ComplianceLastSuccessDate *time.Time              `json:"compliance_last_success_date"`
	CustomFields              *map[string]interface{} `json:"custom_fields,omitempty"`

	// Device device
	Device *openapi_types.UUID `json:"device,omitempty"`

	// IntendedConfig Intended config for the device.
	IntendedConfig          *string                      `json:"intended_config,omitempty"`
	IntendedLastAttemptDate *time.Time                   `json:"intended_last_attempt_date"`
	IntendedLastSuccessDate *time.Time                   `json:"intended_last_success_date"`
	Tags                    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedGraphQLQueryRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedGraphQLQueryRequest struct {
	Name      *string                 `json:"name,omitempty"`
	Query     *string                 `json:"query,omitempty"`
	Slug      *string                 `json:"slug,omitempty"`
	Variables *map[string]interface{} `json:"variables"`
}

// PatchedGroupRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedGroupRequest struct {
	Name *string `json:"name,omitempty"`
}

// PatchedIPRangeRequest IPRange Serializer.
type PatchedIPRangeRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	EndAddress      *string                 `json:"end_address,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedIPRangeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedIPRangeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedIPRangeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	StartAddress *string                      `json:"start_address,omitempty"`
	Status       *Status8f7Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Vrf          *openapi_types.UUID          `json:"vrf"`
}

// PatchedIPRangeRequest_Relationships_Destination_Objects_Item defines model for PatchedIPRangeRequest.relationships.destination.objects.Item.
type PatchedIPRangeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedIPRangeRequest_Relationships_Peer_Objects_Item defines model for PatchedIPRangeRequest.relationships.peer.objects.Item.
type PatchedIPRangeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedIPRangeRequest_Relationships_Source_Objects_Item defines model for PatchedIPRangeRequest.relationships.source.objects.Item.
type PatchedIPRangeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedImageAttachmentRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedImageAttachmentRequest struct {
	ContentType *string             `json:"content_type,omitempty"`
	Image       *openapi_types.File `json:"image,omitempty"`
	ImageHeight *int                `json:"image_height,omitempty"`
	ImageWidth  *int                `json:"image_width,omitempty"`
	Name        *string             `json:"name,omitempty"`
	ObjectId    *openapi_types.UUID `json:"object_id,omitempty"`
}

// PatchedJobHookRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedJobHookRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`

	// Job The job that this job hook will initiate
	Job           *openapi_types.UUID `json:"job,omitempty"`
	Name          *string             `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedJobHookRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedJobHookRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedJobHookRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// TypeCreate Call this job hook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this job hook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this job hook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// PatchedJobHookRequest_Relationships_Destination_Objects_Item defines model for PatchedJobHookRequest.relationships.destination.objects.Item.
type PatchedJobHookRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedJobHookRequest_Relationships_Peer_Objects_Item defines model for PatchedJobHookRequest.relationships.peer.objects.Item.
type PatchedJobHookRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedJobHookRequest_Relationships_Source_Objects_Item defines model for PatchedJobHookRequest.relationships.source.objects.Item.
type PatchedJobHookRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedJobRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedJobRequest struct {
	// ApprovalRequired Whether the job requires approval from another user before running
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovalRequiredOverride If set, the configured value will remain even if the underlying Job source code changes
	ApprovalRequiredOverride *bool `json:"approval_required_override,omitempty"`

	// CommitDefault Whether the job defaults to committing changes when run, or defaults to a dry-run
	CommitDefault *bool `json:"commit_default,omitempty"`

	// CommitDefaultOverride If set, the configured value will remain even if the underlying Job source code changes
	CommitDefaultOverride *bool                   `json:"commit_default_override,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`

	// Description Markdown formatting is supported
	Description *string `json:"description,omitempty"`

	// DescriptionOverride If set, the configured description will remain even if the underlying Job source code changes
	DescriptionOverride *bool `json:"description_override,omitempty"`

	// Enabled Whether this job can be executed by users
	Enabled *bool `json:"enabled,omitempty"`

	// Grouping Human-readable grouping that this job belongs to
	Grouping *string `json:"grouping,omitempty"`

	// GroupingOverride If set, the configured grouping will remain even if the underlying Job source code changes
	GroupingOverride *bool `json:"grouping_override,omitempty"`

	// HasSensitiveVariables Whether this job contains sensitive variables
	HasSensitiveVariables *bool `json:"has_sensitive_variables,omitempty"`

	// HasSensitiveVariablesOverride If set, the configured value will remain even if the underlying Job source code changes
	HasSensitiveVariablesOverride *bool `json:"has_sensitive_variables_override,omitempty"`

	// Hidden Whether the job defaults to not being shown in the UI
	Hidden *bool `json:"hidden,omitempty"`

	// HiddenOverride If set, the configured value will remain even if the underlying Job source code changes
	HiddenOverride *bool `json:"hidden_override,omitempty"`

	// Name Human-readable name of this job
	Name *string `json:"name,omitempty"`

	// NameOverride If set, the configured name will remain even if the underlying Job source code changes
	NameOverride *bool `json:"name_override,omitempty"`

	// ReadOnly Whether the job is prevented from making lasting changes to the database
	ReadOnly *bool `json:"read_only,omitempty"`

	// ReadOnlyOverride If set, the configured value will remain even if the underlying Job source code changes
	ReadOnlyOverride *bool `json:"read_only_override,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedJobRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedJobRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedJobRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SoftTimeLimit Maximum runtime in seconds before the job will receive a <code>SoftTimeLimitExceeded</code> exception.<br>Set to 0 to use Nautobot system default
	SoftTimeLimit *float64 `json:"soft_time_limit,omitempty"`

	// SoftTimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	SoftTimeLimitOverride *bool                        `json:"soft_time_limit_override,omitempty"`
	Tags                  *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// TaskQueues Comma separated list of task queues that this job can run on. A blank list will use the default queue
	TaskQueues *map[string]interface{} `json:"task_queues,omitempty"`

	// TaskQueuesOverride If set, the configured value will remain even if the underlying Job source code changes
	TaskQueuesOverride *bool `json:"task_queues_override,omitempty"`

	// TimeLimit Maximum runtime in seconds before the job will be forcibly terminated.<br>Set to 0 to use Nautobot system default
	TimeLimit *float64 `json:"time_limit,omitempty"`

	// TimeLimitOverride If set, the configured value will remain even if the underlying Job source code changes
	TimeLimitOverride *bool `json:"time_limit_override,omitempty"`
}

// PatchedJobRequest_Relationships_Destination_Objects_Item defines model for PatchedJobRequest.relationships.destination.objects.Item.
type PatchedJobRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedJobRequest_Relationships_Peer_Objects_Item defines model for PatchedJobRequest.relationships.peer.objects.Item.
type PatchedJobRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedJobRequest_Relationships_Source_Objects_Item defines model for PatchedJobRequest.relationships.source.objects.Item.
type PatchedJobRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedManufacturerRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedManufacturerRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedManufacturerRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedManufacturerRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedManufacturerRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedManufacturerRequest_Relationships_Destination_Objects_Item defines model for PatchedManufacturerRequest.relationships.destination.objects.Item.
type PatchedManufacturerRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedManufacturerRequest_Relationships_Peer_Objects_Item defines model for PatchedManufacturerRequest.relationships.peer.objects.Item.
type PatchedManufacturerRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedManufacturerRequest_Relationships_Source_Objects_Item defines model for PatchedManufacturerRequest.relationships.source.objects.Item.
type PatchedManufacturerRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedMinMaxValidationRuleRequest Serializer for `MinMaxValidationRule` objects.
type PatchedMinMaxValidationRuleRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Enabled     *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage *string `json:"error_message"`
	Field        *string `json:"field,omitempty"`

	// Max When set, apply a maximum value contraint to the value of the model field.
	Max *float64 `json:"max"`

	// Min When set, apply a minimum value contraint to the value of the model field.
	Min  *float64 `json:"min"`
	Name *string  `json:"name,omitempty"`
	Slug *string  `json:"slug,omitempty"`
}

// PatchedNATPolicyRequest NATPolicy Serializer.
type PatchedNATPolicyRequest struct {
	CustomFieldData       *map[string]interface{}                  `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]NATPolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]NATPolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}                  `json:"custom_fields,omitempty"`
	Description           *string                                  `json:"description,omitempty"`
	Name                  *string                                  `json:"name,omitempty"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedNATPolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedNATPolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedNATPolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedNATPolicyRequest_Relationships_Destination_Objects_Item defines model for PatchedNATPolicyRequest.relationships.destination.objects.Item.
type PatchedNATPolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedNATPolicyRequest_Relationships_Peer_Objects_Item defines model for PatchedNATPolicyRequest.relationships.peer.objects.Item.
type PatchedNATPolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedNATPolicyRequest_Relationships_Source_Objects_Item defines model for PatchedNATPolicyRequest.relationships.source.objects.Item.
type PatchedNATPolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedNoteRequest This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type PatchedNoteRequest struct {
	AssignedObjectId   *openapi_types.UUID `json:"assigned_object_id,omitempty"`
	AssignedObjectType *string             `json:"assigned_object_type,omitempty"`
	Note               *string             `json:"note,omitempty"`
	Slug               *string             `json:"slug,omitempty"`
}

// PatchedPeeringRequest REST API serializer for Peering records.
type PatchedPeeringRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Status       *CircuitStatusChoices   `json:"status,omitempty"`
}

// PatchedPeeringRoleRequest REST API serializer for PeeringRole records.
type PatchedPeeringRoleRequest struct {
	Color        *string                 `json:"color,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Name         *string                 `json:"name,omitempty"`
	Slug         *string                 `json:"slug,omitempty"`
}

// PatchedPolicyRequest Policy Serializer.
type PatchedPolicyRequest struct {
	CustomFieldData       *map[string]interface{}               `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]PolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]PolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}               `json:"custom_fields,omitempty"`
	Description           *string                               `json:"description,omitempty"`
	Name                  *string                               `json:"name,omitempty"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedPolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedPolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedPolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedPolicyRequest_Relationships_Destination_Objects_Item defines model for PatchedPolicyRequest.relationships.destination.objects.Item.
type PatchedPolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedPolicyRequest_Relationships_Peer_Objects_Item defines model for PatchedPolicyRequest.relationships.peer.objects.Item.
type PatchedPolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedPolicyRequest_Relationships_Source_Objects_Item defines model for PatchedPolicyRequest.relationships.source.objects.Item.
type PatchedPolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderLCMRequest API serializer.
type PatchedProviderLCMRequest struct {
	Comments        *string                 `json:"comments,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Email           *openapi_types.Email    `json:"email,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Phone           *string                 `json:"phone,omitempty"`
	PhysicalAddress *string                 `json:"physical_address,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedProviderLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedProviderLCMRequest.relationships.destination.objects.Item.
type PatchedProviderLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedProviderLCMRequest.relationships.peer.objects.Item.
type PatchedProviderLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderLCMRequest_Relationships_Source_Objects_Item defines model for PatchedProviderLCMRequest.relationships.source.objects.Item.
type PatchedProviderLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedProviderRequest struct {
	Account      *string `json:"account,omitempty"`
	AdminContact *string `json:"admin_contact,omitempty"`

	// Asn 32-bit autonomous system number
	Asn           *int64                  `json:"asn"`
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	NocContact    *string                 `json:"noc_contact,omitempty"`
	PortalUrl     *string                 `json:"portal_url,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedProviderRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedProviderRequest_Relationships_Destination_Objects_Item defines model for PatchedProviderRequest.relationships.destination.objects.Item.
type PatchedProviderRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderRequest_Relationships_Peer_Objects_Item defines model for PatchedProviderRequest.relationships.peer.objects.Item.
type PatchedProviderRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedProviderRequest_Relationships_Source_Objects_Item defines model for PatchedProviderRequest.relationships.source.objects.Item.
type PatchedProviderRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRIRRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedRIRRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// IsPrivate IP space managed by this RIR is considered private
	IsPrivate     *bool   `json:"is_private,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedRIRRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedRIRRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedRIRRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedRIRRequest_Relationships_Destination_Objects_Item defines model for PatchedRIRRequest.relationships.destination.objects.Item.
type PatchedRIRRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRIRRequest_Relationships_Peer_Objects_Item defines model for PatchedRIRRequest.relationships.peer.objects.Item.
type PatchedRIRRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRIRRequest_Relationships_Source_Objects_Item defines model for PatchedRIRRequest.relationships.source.objects.Item.
type PatchedRIRRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRackRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedRackRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedRackRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedRackRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedRackRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedRackRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedRackRoleRequest.relationships.destination.objects.Item.
type PatchedRackRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRackRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedRackRoleRequest.relationships.peer.objects.Item.
type PatchedRackRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRackRoleRequest_Relationships_Source_Objects_Item defines model for PatchedRackRoleRequest.relationships.source.objects.Item.
type PatchedRackRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRegularExpressionValidationRuleRequest Serializer for `RegularExpressionValidationRule` objects.
type PatchedRegularExpressionValidationRuleRequest struct {
	ContentType *string `json:"content_type,omitempty"`
	Enabled     *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage      *string `json:"error_message"`
	Field             *string `json:"field,omitempty"`
	Name              *string `json:"name,omitempty"`
	RegularExpression *string `json:"regular_expression,omitempty"`
	Slug              *string `json:"slug,omitempty"`
}

// PatchedRelationshipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedRelationshipRequest struct {
	Description *string `json:"description,omitempty"`

	// DestinationFilter Filterset filter matching the applicable destination objects of the selected type
	DestinationFilter *map[string]interface{} `json:"destination_filter"`

	// DestinationHidden Hide this relationship on the destination object.
	DestinationHidden *bool `json:"destination_hidden,omitempty"`

	// DestinationLabel Label for related source objects, as displayed on the destination object.
	DestinationLabel *string `json:"destination_label,omitempty"`
	DestinationType  *string `json:"destination_type,omitempty"`

	// Name Name of the relationship as displayed to users
	Name *string `json:"name,omitempty"`

	// RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
	RequiredOn *PatchedRelationshipRequest_RequiredOn `json:"required_on,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// SourceFilter Filterset filter matching the applicable source objects of the selected type
	SourceFilter *map[string]interface{} `json:"source_filter"`

	// SourceHidden Hide this relationship on the source object.
	SourceHidden *bool `json:"source_hidden,omitempty"`

	// SourceLabel Label for related destination objects, as displayed on the source object.
	SourceLabel *string `json:"source_label,omitempty"`
	SourceType  *string `json:"source_type,omitempty"`

	// Type Cardinality of this relationship
	Type *RelationshipTypeChoices `json:"type,omitempty"`
}

// PatchedRelationshipRequest_RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
type PatchedRelationshipRequest_RequiredOn struct {
	union json.RawMessage
}

// PatchedRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedRoleRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug   *string `json:"slug,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// PatchedRoleRequest_Relationships_Destination_Objects_Item defines model for PatchedRoleRequest.relationships.destination.objects.Item.
type PatchedRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRoleRequest_Relationships_Peer_Objects_Item defines model for PatchedRoleRequest.relationships.peer.objects.Item.
type PatchedRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedRoleRequest_Relationships_Source_Objects_Item defines model for PatchedRoleRequest.relationships.source.objects.Item.
type PatchedRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretRequest Serializer for `Secret` objects.
type PatchedSecretRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Parameters    *map[string]interface{} `json:"parameters,omitempty"`
	Provider      *string                 `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedSecretRequest_Relationships_Destination_Objects_Item defines model for PatchedSecretRequest.relationships.destination.objects.Item.
type PatchedSecretRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretRequest_Relationships_Peer_Objects_Item defines model for PatchedSecretRequest.relationships.peer.objects.Item.
type PatchedSecretRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretRequest_Relationships_Source_Objects_Item defines model for PatchedSecretRequest.relationships.source.objects.Item.
type PatchedSecretRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretsGroupRequest Serializer for `SecretsGroup` objects.
type PatchedSecretsGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedSecretsGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedSecretsGroupRequest.relationships.destination.objects.Item.
type PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedSecretsGroupRequest.relationships.peer.objects.Item.
type PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedSecretsGroupRequest_Relationships_Source_Objects_Item defines model for PatchedSecretsGroupRequest.relationships.source.objects.Item.
type PatchedSecretsGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedServiceObjectRequest ServiceObject Serializer.
type PatchedServiceObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol *IpProtocolEnum `json:"ip_protocol,omitempty"`

	// Name Name of the service (e.g. HTTP)
	Name *string `json:"name,omitempty"`

	// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
	Port          *string `json:"port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedServiceObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedServiceObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedServiceObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedServiceObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedServiceObjectRequest.relationships.destination.objects.Item.
type PatchedServiceObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedServiceObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedServiceObjectRequest.relationships.peer.objects.Item.
type PatchedServiceObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedServiceObjectRequest_Relationships_Source_Objects_Item defines model for PatchedServiceObjectRequest.relationships.source.objects.Item.
type PatchedServiceObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedStatusRequest Serializer for `Status` objects.
type PatchedStatusRequest struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  *[]string               `json:"content_types,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedStatusRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedStatusRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedStatusRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedStatusRequest_Relationships_Destination_Objects_Item defines model for PatchedStatusRequest.relationships.destination.objects.Item.
type PatchedStatusRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedStatusRequest_Relationships_Peer_Objects_Item defines model for PatchedStatusRequest.relationships.peer.objects.Item.
type PatchedStatusRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedStatusRequest_Relationships_Source_Objects_Item defines model for PatchedStatusRequest.relationships.source.objects.Item.
type PatchedStatusRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedTagSerializerVersion13Request Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedTagSerializerVersion13Request struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  *[]string               `json:"content_types,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item defines model for PatchedTagSerializerVersion13Request.relationships.destination.objects.Item.
type PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item defines model for PatchedTagSerializerVersion13Request.relationships.peer.objects.Item.
type PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item defines model for PatchedTagSerializerVersion13Request.relationships.source.objects.Item.
type PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedTokenRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedTokenRequest struct {
	Description *string    `json:"description,omitempty"`
	Expires     *time.Time `json:"expires"`
	Key         *string    `json:"key,omitempty"`

	// WriteEnabled Permit create/update/delete operations using this key
	WriteEnabled *bool `json:"write_enabled,omitempty"`
}

// PatchedUserObjectRequest UserObject Serializer.
type PatchedUserObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

	// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedUserObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedUserObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedUserObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Username Signifies the username in identify provider (e.g. john.smith)
	Username *string `json:"username,omitempty"`
}

// PatchedUserObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedUserObjectRequest.relationships.destination.objects.Item.
type PatchedUserObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedUserObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedUserObjectRequest.relationships.peer.objects.Item.
type PatchedUserObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedUserObjectRequest_Relationships_Source_Objects_Item defines model for PatchedUserObjectRequest.relationships.source.objects.Item.
type PatchedUserObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedVulnerabilityLCMRequest REST API serializer for VulnerabilityLCM records.
type PatchedVulnerabilityLCMRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status4f5Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedVulnerabilityLCMRequest.relationships.destination.objects.Item.
type PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedVulnerabilityLCMRequest.relationships.peer.objects.Item.
type PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item defines model for PatchedVulnerabilityLCMRequest.relationships.source.objects.Item.
type PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWebhookRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWebhookRequest struct {
	// AdditionalHeaders User-supplied HTTP headers to be sent with the request in addition to the HTTP content type. Headers should be defined in the format <code>Name: Value</code>. Jinja2 template processing is support with the same context as the request body (below).
	AdditionalHeaders *string `json:"additional_headers,omitempty"`

	// BodyTemplate Jinja2 template for a custom request body. If blank, a JSON object representing the change will be included. Available context data includes: <code>event</code>, <code>model</code>, <code>timestamp</code>, <code>username</code>, <code>request_id</code>, and <code>data</code>.
	BodyTemplate *string `json:"body_template,omitempty"`

	// CaFilePath The specific CA certificate file to use for SSL verification. Leave blank to use the system defaults.
	CaFilePath   *string   `json:"ca_file_path"`
	ContentTypes *[]string `json:"content_types,omitempty"`

	// HttpContentType The complete list of official content types is available <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.
	HttpContentType *string         `json:"http_content_type,omitempty"`
	HttpMethod      *HttpMethodEnum `json:"http_method,omitempty"`
	Name            *string         `json:"name,omitempty"`

	// PayloadUrl A POST will be sent to this URL when the webhook is called.
	PayloadUrl *string `json:"payload_url,omitempty"`

	// Secret When provided, the request will include a 'X-Hook-Signature' header containing a HMAC hex digest of the payload body using the secret as the key. The secret is not transmitted in the request.
	Secret *string `json:"secret,omitempty"`

	// SslVerification Enable SSL certificate verification. Disable with caution!
	SslVerification *bool `json:"ssl_verification,omitempty"`

	// TypeCreate Call this webhook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this webhook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this webhook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// PatchedWritableAddressFamilyRequest REST API serializer for AddressFamily records.
type PatchedWritableAddressFamilyRequest struct {
	AfiSafi         *AfiSafiEnum            `json:"afi_safi,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	ExportPolicy    *string                 `json:"export_policy,omitempty"`
	ImportPolicy    *string                 `json:"import_policy,omitempty"`
	RoutingInstance *openapi_types.UUID     `json:"routing_instance,omitempty"`
	Vrf             *openapi_types.UUID     `json:"vrf"`
}

// PatchedWritableAddressObjectGroupRequest AddressObjectGroup Serializer.
type PatchedWritableAddressObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Name Name descriptor for a group address objects.
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableAddressObjectGroupRequest.relationships.destination.objects.Item.
type PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableAddressObjectGroupRequest.relationships.peer.objects.Item.
type PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableAddressObjectGroupRequest.relationships.source.objects.Item.
type PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAddressObjectRequest AddressObject Serializer.
type PatchedWritableAddressObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Fqdn            *openapi_types.UUID     `json:"fqdn"`
	IpAddress       *openapi_types.UUID     `json:"ip_address"`
	IpRange         *openapi_types.UUID     `json:"ip_range"`

	// Name Name descriptor for an address object type.
	Name          *string             `json:"name,omitempty"`
	Prefix        *openapi_types.UUID `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableAddressObjectRequest.relationships.destination.objects.Item.
type PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableAddressObjectRequest.relationships.peer.objects.Item.
type PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item defines model for PatchedWritableAddressObjectRequest.relationships.source.objects.Item.
type PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAggregateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableAggregateRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	DateAdded     *openapi_types.Date     `json:"date_added"`
	Description   *string                 `json:"description,omitempty"`
	Prefix        *string                 `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableAggregateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Rir    *openapi_types.UUID          `json:"rir,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableAggregateRequest.relationships.destination.objects.Item.
type PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableAggregateRequest.relationships.peer.objects.Item.
type PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAggregateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableAggregateRequest.relationships.source.objects.Item.
type PatchedWritableAggregateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableAutonomousSystemRequest REST API serializer for AutonomousSystem records.
type PatchedWritableAutonomousSystemRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                       `json:"asn,omitempty"`
	CustomFields *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description  *string                      `json:"description,omitempty"`
	Provider     *openapi_types.UUID          `json:"provider"`
	Status       *Status2a0Enum               `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableBGPRoutingInstanceRequest REST API serializer for Peering records.
type PatchedWritableBGPRoutingInstanceRequest struct {
	AutonomousSystem *openapi_types.UUID     `json:"autonomous_system,omitempty"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Device           *openapi_types.UUID     `json:"device,omitempty"`
	RouterId         *openapi_types.UUID     `json:"router_id"`
}

// PatchedWritableCVELCMRequest REST API serializer for CVELCM records.
type PatchedWritableCVELCMRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Cvss          *float64                `json:"cvss"`
	CvssV2        *float64                `json:"cvss_v2"`
	CvssV3        *float64                `json:"cvss_v3"`
	Description   *string                 `json:"description"`
	Fix           *string                 `json:"fix"`
	Link          *string                 `json:"link,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	PublishedDate *openapi_types.Date     `json:"published_date,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Severity *SeverityEnum                `json:"severity,omitempty"`
	Status   *Status4f5Enum               `json:"status,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableCVELCMRequest.relationships.destination.objects.Item.
type PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableCVELCMRequest.relationships.peer.objects.Item.
type PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableCVELCMRequest.relationships.source.objects.Item.
type PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCableRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableCableRequest struct {
	Color         *string                                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{}                 `json:"custom_fields,omitempty"`
	Label         *string                                 `json:"label,omitempty"`
	Length        *int                                    `json:"length"`
	LengthUnit    *PatchedWritableCableRequest_LengthUnit `json:"length_unit,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCableRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCableRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCableRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status           *CableStatusChoices               `json:"status,omitempty"`
	Tags             *[]TagSerializerFieldRequest      `json:"tags,omitempty"`
	TerminationAId   *openapi_types.UUID               `json:"termination_a_id,omitempty"`
	TerminationAType *string                           `json:"termination_a_type,omitempty"`
	TerminationBId   *openapi_types.UUID               `json:"termination_b_id,omitempty"`
	TerminationBType *string                           `json:"termination_b_type,omitempty"`
	Type             *PatchedWritableCableRequest_Type `json:"type,omitempty"`
}

// PatchedWritableCableRequest_LengthUnit defines model for PatchedWritableCableRequest.LengthUnit.
type PatchedWritableCableRequest_LengthUnit struct {
	union json.RawMessage
}

// PatchedWritableCableRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableCableRequest.relationships.destination.objects.Item.
type PatchedWritableCableRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCableRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableCableRequest.relationships.peer.objects.Item.
type PatchedWritableCableRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCableRequest_Relationships_Source_Objects_Item defines model for PatchedWritableCableRequest.relationships.source.objects.Item.
type PatchedWritableCableRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCableRequest_Type defines model for PatchedWritableCableRequest.Type.
type PatchedWritableCableRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableCircuitRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableCircuitRequest struct {
	Cid           *string                 `json:"cid,omitempty"`
	Comments      *string                 `json:"comments,omitempty"`
	CommitRate    *int                    `json:"commit_rate"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	InstallDate   *openapi_types.Date     `json:"install_date"`
	Provider      *openapi_types.UUID     `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *CircuitStatusChoices        `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Type   *openapi_types.UUID          `json:"type,omitempty"`
}

// PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableCircuitRequest.relationships.destination.objects.Item.
type PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableCircuitRequest.relationships.peer.objects.Item.
type PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCircuitRequest_Relationships_Source_Objects_Item defines model for PatchedWritableCircuitRequest.relationships.source.objects.Item.
type PatchedWritableCircuitRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCircuitTerminationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableCircuitTerminationRequest struct {
	Circuit         *openapi_types.UUID     `json:"circuit,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Location        *openapi_types.UUID     `json:"location"`
	PortSpeed       *int                    `json:"port_speed"`
	PpInfo          *string                 `json:"pp_info,omitempty"`
	ProviderNetwork *openapi_types.UUID     `json:"provider_network"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site     *openapi_types.UUID `json:"site"`
	TermSide *TermSideEnum       `json:"term_side,omitempty"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableCircuitTerminationRequest.relationships.destination.objects.Item.
type PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableCircuitTerminationRequest.relationships.peer.objects.Item.
type PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item defines model for PatchedWritableCircuitTerminationRequest.relationships.source.objects.Item.
type PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableClusterRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableClusterRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableClusterRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableClusterRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableClusterRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *openapi_types.UUID          `json:"site"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Type   *openapi_types.UUID          `json:"type,omitempty"`
}

// PatchedWritableClusterRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableClusterRequest.relationships.destination.objects.Item.
type PatchedWritableClusterRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableClusterRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableClusterRequest.relationships.peer.objects.Item.
type PatchedWritableClusterRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableClusterRequest_Relationships_Source_Objects_Item defines model for PatchedWritableClusterRequest.relationships.source.objects.Item.
type PatchedWritableClusterRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConfigContextRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableConfigContextRequest struct {
	ClusterGroups    *[]openapi_types.UUID   `json:"cluster_groups,omitempty"`
	Clusters         *[]openapi_types.UUID   `json:"clusters,omitempty"`
	Data             *map[string]interface{} `json:"data,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	DeviceTypes      *[]openapi_types.UUID   `json:"device_types,omitempty"`
	IsActive         *bool                   `json:"is_active,omitempty"`
	Locations        *[]openapi_types.UUID   `json:"locations,omitempty"`
	Name             *string                 `json:"name,omitempty"`
	OwnerContentType *string                 `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID     `json:"owner_object_id"`
	Platforms        *[]openapi_types.UUID   `json:"platforms,omitempty"`
	Regions          *[]openapi_types.UUID   `json:"regions,omitempty"`
	Roles            *[]openapi_types.UUID   `json:"roles,omitempty"`

	// Schema Optional schema to validate the structure of the data
	Schema       *openapi_types.UUID   `json:"schema"`
	Sites        *[]openapi_types.UUID `json:"sites,omitempty"`
	Tags         *[]string             `json:"tags,omitempty"`
	TenantGroups *[]openapi_types.UUID `json:"tenant_groups,omitempty"`
	Tenants      *[]openapi_types.UUID `json:"tenants,omitempty"`
	Weight       *int                  `json:"weight,omitempty"`
}

// PatchedWritableConsolePortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableConsolePortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *PatchedWritableConsolePortRequest_Type `json:"type,omitempty"`
}

// PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableConsolePortRequest.relationships.destination.objects.Item.
type PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableConsolePortRequest.relationships.peer.objects.Item.
type PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item defines model for PatchedWritableConsolePortRequest.relationships.source.objects.Item.
type PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortRequest_Type Physical port type
type PatchedWritableConsolePortRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableConsolePortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableConsolePortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PatchedWritableConsolePortTemplateRequest_Type `json:"type,omitempty"`
}

// PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableConsolePortTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableConsolePortTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableConsolePortTemplateRequest.relationships.source.objects.Item.
type PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsolePortTemplateRequest_Type defines model for PatchedWritableConsolePortTemplateRequest.Type.
type PatchedWritableConsolePortTemplateRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableConsoleServerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableConsoleServerPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *PatchedWritableConsoleServerPortRequest_Type `json:"type,omitempty"`
}

// PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableConsoleServerPortRequest.relationships.destination.objects.Item.
type PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableConsoleServerPortRequest.relationships.peer.objects.Item.
type PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item defines model for PatchedWritableConsoleServerPortRequest.relationships.source.objects.Item.
type PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortRequest_Type Physical port type
type PatchedWritableConsoleServerPortRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableConsoleServerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableConsoleServerPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PatchedWritableConsoleServerPortTemplateRequest_Type `json:"type,omitempty"`
}

// PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableConsoleServerPortTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableConsoleServerPortTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableConsoleServerPortTemplateRequest.relationships.source.objects.Item.
type PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableConsoleServerPortTemplateRequest_Type defines model for PatchedWritableConsoleServerPortTemplateRequest.Type.
type PatchedWritableConsoleServerPortTemplateRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableContactLCMRequest API serializer.
type PatchedWritableContactLCMRequest struct {
	Address       *string                 `json:"address,omitempty"`
	Comments      *string                 `json:"comments,omitempty"`
	Contract      *openapi_types.UUID     `json:"contract"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Email         *openapi_types.Email    `json:"email,omitempty"`
	Name          *string                 `json:"name"`
	Phone         *string                 `json:"phone,omitempty"`
	Priority      *int                    `json:"priority,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableContactLCMRequest.relationships.destination.objects.Item.
type PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableContactLCMRequest.relationships.peer.objects.Item.
type PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableContactLCMRequest.relationships.source.objects.Item.
type PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableContractLCMRequest API serializer.
type PatchedWritableContractLCMRequest struct {
	ContractType  *string                 `json:"contract_type"`
	Cost          *string                 `json:"cost"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	End           *openapi_types.Date     `json:"end"`
	Name          *string                 `json:"name,omitempty"`
	Provider      *openapi_types.UUID     `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Start        *openapi_types.Date          `json:"start"`
	SupportLevel *string                      `json:"support_level"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableContractLCMRequest.relationships.destination.objects.Item.
type PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableContractLCMRequest.relationships.peer.objects.Item.
type PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableContractLCMRequest.relationships.source.objects.Item.
type PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableCustomFieldChoiceRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableCustomFieldChoiceRequest struct {
	Field *openapi_types.UUID `json:"field,omitempty"`
	Value *string             `json:"value,omitempty"`

	// Weight Higher weights appear later in the list
	Weight *int `json:"weight,omitempty"`
}

// PatchedWritableDeviceBayRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableDeviceBayRequest struct {
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Device          *openapi_types.UUID     `json:"device,omitempty"`
	InstalledDevice *openapi_types.UUID     `json:"installed_device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableDeviceBayRequest.relationships.destination.objects.Item.
type PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableDeviceBayRequest.relationships.peer.objects.Item.
type PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item defines model for PatchedWritableDeviceBayRequest.relationships.source.objects.Item.
type PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceBayTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableDeviceBayTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
}

// PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableDeviceBayTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableDeviceBayTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableDeviceBayTemplateRequest.relationships.source.objects.Item.
type PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceRedundancyGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableDeviceRedundancyGroupRequest struct {
	Comments         *string                                                       `json:"comments,omitempty"`
	CustomFields     *map[string]interface{}                                       `json:"custom_fields,omitempty"`
	Description      *string                                                       `json:"description,omitempty"`
	FailoverStrategy *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy `json:"failover_strategy,omitempty"`
	Name             *string                                                       `json:"name,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                               `json:"label,omitempty"`
			ObjectType *string                                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *openapi_types.UUID          `json:"secrets_group"`
	Slug         *string                      `json:"slug,omitempty"`
	Status       *LocationStatusChoices       `json:"status,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy defines model for PatchedWritableDeviceRedundancyGroupRequest.FailoverStrategy.
type PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy struct {
	union json.RawMessage
}

// PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableDeviceRedundancyGroupRequest.relationships.destination.objects.Item.
type PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableDeviceRedundancyGroupRequest.relationships.peer.objects.Item.
type PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableDeviceRedundancyGroupRequest.relationships.source.objects.Item.
type PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableDeviceTypeRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	FrontImage   *openapi_types.File     `json:"front_image,omitempty"`

	// IsFullDepth Device consumes both front and rear rack faces
	IsFullDepth  *bool               `json:"is_full_depth,omitempty"`
	Manufacturer *openapi_types.UUID `json:"manufacturer,omitempty"`
	Model        *string             `json:"model,omitempty"`

	// PartNumber Discrete part number (optional)
	PartNumber    *string             `json:"part_number,omitempty"`
	RearImage     *openapi_types.File `json:"rear_image,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SubdeviceRole Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
	SubdeviceRole *PatchedWritableDeviceTypeRequest_SubdeviceRole `json:"subdevice_role,omitempty"`
	Tags          *[]TagSerializerFieldRequest                    `json:"tags,omitempty"`
	UHeight       *int                                            `json:"u_height,omitempty"`
}

// PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableDeviceTypeRequest.relationships.destination.objects.Item.
type PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableDeviceTypeRequest.relationships.peer.objects.Item.
type PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item defines model for PatchedWritableDeviceTypeRequest.relationships.source.objects.Item.
type PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceTypeRequest_SubdeviceRole Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
type PatchedWritableDeviceTypeRequest_SubdeviceRole struct {
	union json.RawMessage
}

// PatchedWritableDeviceWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableDeviceWithConfigContextRequest struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                 `json:"asset_tag"`
	Cluster               *openapi_types.UUID     `json:"cluster"`
	Comments              *string                 `json:"comments,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *openapi_types.UUID     `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int                                                `json:"device_redundancy_group_priority"`
	DeviceRole                    *openapi_types.UUID                                 `json:"device_role,omitempty"`
	DeviceType                    *openapi_types.UUID                                 `json:"device_type,omitempty"`
	Face                          *PatchedWritableDeviceWithConfigContextRequest_Face `json:"face,omitempty"`
	LocalContextData              *map[string]interface{}                             `json:"local_context_data"`

	// LocalContextSchema Optional schema to validate the structure of the data
	LocalContextSchema *openapi_types.UUID `json:"local_context_schema"`
	Location           *openapi_types.UUID `json:"location"`
	Name               *string             `json:"name"`
	Platform           *openapi_types.UUID `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position      *int                `json:"position"`
	PrimaryIp4    *openapi_types.UUID `json:"primary_ip4"`
	PrimaryIp6    *openapi_types.UUID `json:"primary_ip6"`
	Rack          *openapi_types.UUID `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup   *openapi_types.UUID          `json:"secrets_group"`
	Serial         *string                      `json:"serial,omitempty"`
	Site           *openapi_types.UUID          `json:"site,omitempty"`
	Status         *DeviceStatusChoices         `json:"status,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant         *openapi_types.UUID          `json:"tenant"`
	VcPosition     *int                         `json:"vc_position"`
	VcPriority     *int                         `json:"vc_priority"`
	VirtualChassis *openapi_types.UUID          `json:"virtual_chassis"`
}

// PatchedWritableDeviceWithConfigContextRequest_Face defines model for PatchedWritableDeviceWithConfigContextRequest.Face.
type PatchedWritableDeviceWithConfigContextRequest_Face struct {
	union json.RawMessage
}

// PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableDeviceWithConfigContextRequest.relationships.destination.objects.Item.
type PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableDeviceWithConfigContextRequest.relationships.peer.objects.Item.
type PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item defines model for PatchedWritableDeviceWithConfigContextRequest.relationships.source.objects.Item.
type PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableDynamicGroupMembershipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableDynamicGroupMembershipRequest struct {
	Group       *openapi_types.UUID `json:"group,omitempty"`
	Operator    *OperatorEnum       `json:"operator,omitempty"`
	ParentGroup *openapi_types.UUID `json:"parent_group,omitempty"`
	Weight      *int                `json:"weight,omitempty"`
}

// PatchedWritableFQDNRequest FQDN Serializer.
type PatchedWritableFQDNRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFQDNRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableFQDNRequest.relationships.destination.objects.Item.
type PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableFQDNRequest.relationships.peer.objects.Item.
type PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFQDNRequest_Relationships_Source_Objects_Item defines model for PatchedWritableFQDNRequest.relationships.source.objects.Item.
type PatchedWritableFQDNRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableFrontPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// Label Physical label
	Label            *string             `json:"label,omitempty"`
	Name             *string             `json:"name,omitempty"`
	RearPort         *openapi_types.UUID `json:"rear_port,omitempty"`
	RearPortPosition *int                `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PortTypeChoices             `json:"type,omitempty"`
}

// PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableFrontPortRequest.relationships.destination.objects.Item.
type PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableFrontPortRequest.relationships.peer.objects.Item.
type PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item defines model for PatchedWritableFrontPortRequest.relationships.source.objects.Item.
type PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableFrontPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label            *string             `json:"label,omitempty"`
	Name             *string             `json:"name,omitempty"`
	RearPort         *openapi_types.UUID `json:"rear_port,omitempty"`
	RearPortPosition *int                `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PortTypeChoices `json:"type,omitempty"`
}

// PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableFrontPortTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableFrontPortTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableFrontPortTemplateRequest.relationships.source.objects.Item.
type PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableGitRepositoryRequest Git repositories defined as a data source.
type PatchedWritableGitRepositoryRequest struct {
	Branch *string `json:"branch,omitempty"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead      *string                                                      `json:"current_head,omitempty"`
	CustomFields     *map[string]interface{}                                      `json:"custom_fields,omitempty"`
	Name             *string                                                      `json:"name,omitempty"`
	ProvidedContents *[]PatchedWritableGitRepositoryRequest_ProvidedContents_Item `json:"provided_contents,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    *string             `json:"remote_url,omitempty"`
	SecretsGroup *openapi_types.UUID `json:"secrets_group"`
	Slug         *string             `json:"slug,omitempty"`
	Token        *string             `json:"token,omitempty"`
	Username     *string             `json:"username,omitempty"`
}

// PatchedWritableGitRepositoryRequest_ProvidedContents_Item defines model for PatchedWritableGitRepositoryRequest.provided_contents.Item.
type PatchedWritableGitRepositoryRequest_ProvidedContents_Item struct {
	union json.RawMessage
}

// PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableGitRepositoryRequest.relationships.destination.objects.Item.
type PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableGitRepositoryRequest.relationships.peer.objects.Item.
type PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item defines model for PatchedWritableGitRepositoryRequest.relationships.source.objects.Item.
type PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableGoldenConfigSettingRequest Serializer for GoldenConfigSetting object.
type PatchedWritableGoldenConfigSettingRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupPathTemplate The Jinja path representation of where the backup file will be found. The variable `obj` is available as the device instance object of a given device, as is the case for all Jinja templates. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	BackupPathTemplate *string             `json:"backup_path_template,omitempty"`
	BackupRepository   *openapi_types.UUID `json:"backup_repository"`

	// BackupTestConnectivity Whether or not to pretest the connectivity of the device by verifying there is a resolvable IP that can connect to port 22.
	BackupTestConnectivity *bool                   `json:"backup_test_connectivity,omitempty"`
	CustomFields           *map[string]interface{} `json:"custom_fields,omitempty"`
	Description            *string                 `json:"description,omitempty"`
	DynamicGroup           *openapi_types.UUID     `json:"dynamic_group,omitempty"`

	// IntendedPathTemplate The Jinja path representation of where the generated file will be places. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	IntendedPathTemplate *string             `json:"intended_path_template,omitempty"`
	IntendedRepository   *openapi_types.UUID `json:"intended_repository"`

	// JinjaPathTemplate The Jinja path representation of where the Jinja template can be found. e.g. `{{obj.platform.slug}}.j2`
	JinjaPathTemplate *string                      `json:"jinja_path_template,omitempty"`
	JinjaRepository   *openapi_types.UUID          `json:"jinja_repository"`
	Name              *string                      `json:"name,omitempty"`
	Scope             *map[string]interface{}      `json:"scope,omitempty"`
	Slug              *string                      `json:"slug,omitempty"`
	SotAggQuery       *openapi_types.UUID          `json:"sot_agg_query"`
	Tags              *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Weight            *int                         `json:"weight,omitempty"`
}

// PatchedWritableHardwareLCMRequest API serializer.
type PatchedWritableHardwareLCMRequest struct {
	CustomFields         *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceType           *openapi_types.UUID     `json:"device_type"`
	DocumentationUrl     *string                 `json:"documentation_url,omitempty"`
	EndOfSale            *openapi_types.Date     `json:"end_of_sale"`
	EndOfSecurityPatches *openapi_types.Date     `json:"end_of_security_patches"`
	EndOfSupport         *openapi_types.Date     `json:"end_of_support"`
	EndOfSwReleases      *openapi_types.Date     `json:"end_of_sw_releases"`
	InventoryItem        *string                 `json:"inventory_item"`
	Relationships        *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate *openapi_types.Date          `json:"release_date"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableHardwareLCMRequest.relationships.destination.objects.Item.
type PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableHardwareLCMRequest.relationships.peer.objects.Item.
type PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableHardwareLCMRequest.relationships.source.objects.Item.
type PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableIPAddressRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableIPAddressRequest struct {
	Address            *string                 `json:"address,omitempty"`
	AssignedObjectId   *openapi_types.UUID     `json:"assigned_object_id"`
	AssignedObjectType *string                 `json:"assigned_object_type"`
	CustomFields       *map[string]interface{} `json:"custom_fields,omitempty"`
	Description        *string                 `json:"description,omitempty"`

	// DnsName Hostname or FQDN (not case-sensitive)
	DnsName *string `json:"dns_name,omitempty"`

	// NatInside The IP Addresses for which this address is the "outside" IP
	NatInside     *openapi_types.UUID `json:"nat_inside"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role The functional role of this IP
	Role   *PatchedWritableIPAddressRequest_Role `json:"role,omitempty"`
	Status *IPAddressStatusChoices               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest          `json:"tags,omitempty"`
	Tenant *openapi_types.UUID                   `json:"tenant"`
	Vrf    *openapi_types.UUID                   `json:"vrf"`
}

// PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableIPAddressRequest.relationships.destination.objects.Item.
type PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableIPAddressRequest.relationships.peer.objects.Item.
type PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item defines model for PatchedWritableIPAddressRequest.relationships.source.objects.Item.
type PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableIPAddressRequest_Role The functional role of this IP
type PatchedWritableIPAddressRequest_Role struct {
	union json.RawMessage
}

// PatchedWritableInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableInterfaceRequest struct {
	// Bridge Assigned bridge interface
	Bridge       *openapi_types.UUID     `json:"bridge"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`
	Enabled      *bool                   `json:"enabled,omitempty"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// Lag Assigned LAG interface
	Lag        *openapi_types.UUID `json:"lag"`
	MacAddress *string             `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly *bool                                 `json:"mgmt_only,omitempty"`
	Mode     *PatchedWritableInterfaceRequest_Mode `json:"mode,omitempty"`
	Mtu      *int                                  `json:"mtu"`
	Name     *string                               `json:"name,omitempty"`

	// ParentInterface Assigned parent interface
	ParentInterface *openapi_types.UUID `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status       *InterfaceStatusChoices      `json:"status,omitempty"`
	TaggedVlans  *[]openapi_types.UUID        `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type         *InterfaceTypeChoices        `json:"type,omitempty"`
	UntaggedVlan *openapi_types.UUID          `json:"untagged_vlan"`
}

// PatchedWritableInterfaceRequest_Mode defines model for PatchedWritableInterfaceRequest.Mode.
type PatchedWritableInterfaceRequest_Mode struct {
	union json.RawMessage
}

// PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableInterfaceRequest.relationships.destination.objects.Item.
type PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableInterfaceRequest.relationships.peer.objects.Item.
type PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item defines model for PatchedWritableInterfaceRequest.relationships.source.objects.Item.
type PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInterfaceTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableInterfaceTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	MgmtOnly      *bool   `json:"mgmt_only,omitempty"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *InterfaceTypeChoices `json:"type,omitempty"`
}

// PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableInterfaceTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableInterfaceTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableInterfaceTemplateRequest.relationships.source.objects.Item.
type PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInventoryItemRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableInventoryItemRequest struct {
	// AssetTag A unique tag used to identify this item
	AssetTag     *string                 `json:"asset_tag"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// Discovered This item was automatically discovered
	Discovered *bool `json:"discovered,omitempty"`

	// Label Physical label
	Label        *string             `json:"label,omitempty"`
	Manufacturer *openapi_types.UUID `json:"manufacturer"`
	Name         *string             `json:"name,omitempty"`
	Parent       *openapi_types.UUID `json:"parent"`

	// PartId Manufacturer-assigned part identifier
	PartId        *string `json:"part_id,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Serial *string                      `json:"serial,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableInventoryItemRequest.relationships.destination.objects.Item.
type PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableInventoryItemRequest.relationships.peer.objects.Item.
type PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item defines model for PatchedWritableInventoryItemRequest.relationships.source.objects.Item.
type PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableLocationRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	LocationType  *openapi_types.UUID     `json:"location_type,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *openapi_types.UUID          `json:"site"`
	Slug   *string                      `json:"slug,omitempty"`
	Status *LocationStatusChoices       `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedWritableLocationRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableLocationRequest.relationships.destination.objects.Item.
type PatchedWritableLocationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableLocationRequest.relationships.peer.objects.Item.
type PatchedWritableLocationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationRequest_Relationships_Source_Objects_Item defines model for PatchedWritableLocationRequest.relationships.source.objects.Item.
type PatchedWritableLocationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableLocationTypeRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Name         *string                 `json:"name,omitempty"`

	// Nestable Allow Locations of this type to be parents/children of other Locations of this same type
	Nestable      *bool               `json:"nestable,omitempty"`
	Parent        *openapi_types.UUID `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableLocationTypeRequest.relationships.destination.objects.Item.
type PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableLocationTypeRequest.relationships.peer.objects.Item.
type PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item defines model for PatchedWritableLocationTypeRequest.relationships.source.objects.Item.
type PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableNATPolicyRuleRequest PolicyRule Serializer.
type PatchedWritableNATPolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest `json:"destination_zone,omitempty"`
	Index           *int         `json:"index"`
	Log             *bool        `json:"log,omitempty"`
	Name            *string      `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Remark    *bool   `json:"remark,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableNATPolicyRuleRequest.relationships.destination.objects.Item.
type PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableNATPolicyRuleRequest.relationships.peer.objects.Item.
type PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item defines model for PatchedWritableNATPolicyRuleRequest.relationships.source.objects.Item.
type PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableObjectPermissionRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableObjectPermissionRequest struct {
	// Actions The list of actions granted by this permission
	Actions *map[string]interface{} `json:"actions,omitempty"`

	// Constraints Queryset filter matching the applicable objects of the selected type(s)
	Constraints *map[string]interface{} `json:"constraints"`
	Description *string                 `json:"description,omitempty"`
	Enabled     *bool                   `json:"enabled,omitempty"`
	Groups      *[]int                  `json:"groups,omitempty"`
	Name        *string                 `json:"name,omitempty"`
	ObjectTypes *[]string               `json:"object_types,omitempty"`
	Users       *[]openapi_types.UUID   `json:"users,omitempty"`
}

// PatchedWritablePeerEndpointRequest REST API serializer for PeerEndpoint records.
type PatchedWritablePeerEndpointRequest struct {
	AutonomousSystem *openapi_types.UUID          `json:"autonomous_system"`
	CustomFields     *map[string]interface{}      `json:"custom_fields,omitempty"`
	Enabled          *bool                        `json:"enabled,omitempty"`
	ExportPolicy     *string                      `json:"export_policy,omitempty"`
	ImportPolicy     *string                      `json:"import_policy,omitempty"`
	Peer             *openapi_types.UUID          `json:"peer"`
	PeerGroup        *openapi_types.UUID          `json:"peer_group"`
	Peering          *openapi_types.UUID          `json:"peering,omitempty"`
	RoutingInstance  *openapi_types.UUID          `json:"routing_instance"`
	Secret           *openapi_types.UUID          `json:"secret"`
	SourceInterface  *openapi_types.UUID          `json:"source_interface"`
	SourceIp         *openapi_types.UUID          `json:"source_ip"`
	Tags             *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritablePeerGroupRequest REST API serializer for PeerGroup records.
type PatchedWritablePeerGroupRequest struct {
	AutonomousSystem *openapi_types.UUID     `json:"autonomous_system"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Enabled          *bool                   `json:"enabled,omitempty"`
	ExportPolicy     *string                 `json:"export_policy,omitempty"`
	ImportPolicy     *string                 `json:"import_policy,omitempty"`
	Name             *string                 `json:"name,omitempty"`
	Role             *openapi_types.UUID     `json:"role"`
	RoutingInstance  *openapi_types.UUID     `json:"routing_instance,omitempty"`
	Secret           *openapi_types.UUID     `json:"secret"`
	SourceInterface  *openapi_types.UUID     `json:"source_interface"`
	SourceIp         *openapi_types.UUID     `json:"source_ip"`
	Template         *openapi_types.UUID     `json:"template"`
}

// PatchedWritablePeerGroupTemplateRequest REST API serializer for PeerGroup records.
type PatchedWritablePeerGroupTemplateRequest struct {
	AutonomousSystem *openapi_types.UUID     `json:"autonomous_system"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Enabled          *bool                   `json:"enabled,omitempty"`
	ExportPolicy     *string                 `json:"export_policy,omitempty"`
	ImportPolicy     *string                 `json:"import_policy,omitempty"`
	Name             *string                 `json:"name,omitempty"`
	Role             *openapi_types.UUID     `json:"role"`
	Secret           *openapi_types.UUID     `json:"secret"`
}

// PatchedWritablePlatformRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePlatformRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Manufacturer Optionally limit this platform to devices of a certain manufacturer
	Manufacturer *openapi_types.UUID `json:"manufacturer"`
	Name         *string             `json:"name,omitempty"`

	// NapalmArgs Additional arguments to pass when initiating the NAPALM driver (JSON format)
	NapalmArgs *map[string]interface{} `json:"napalm_args"`

	// NapalmDriver The name of the NAPALM driver to use when interacting with devices
	NapalmDriver  *string `json:"napalm_driver,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePlatformRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePlatformRequest.relationships.destination.objects.Item.
type PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePlatformRequest.relationships.peer.objects.Item.
type PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePlatformRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePlatformRequest.relationships.source.objects.Item.
type PatchedWritablePlatformRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePolicyRuleRequest PolicyRule Serializer.
type PatchedWritablePolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Action          *ActionEnum             `json:"action,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest `json:"destination_zone,omitempty"`
	Index           *int         `json:"index"`
	Log             *bool        `json:"log,omitempty"`
	Name            *string      `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePolicyRuleRequest.relationships.destination.objects.Item.
type PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePolicyRuleRequest.relationships.peer.objects.Item.
type PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePolicyRuleRequest.relationships.source.objects.Item.
type PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerFeedRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerFeedRequest struct {
	Amperage     *int                    `json:"amperage,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// MaxUtilization Maximum permissible draw (percentage)
	MaxUtilization *int                `json:"max_utilization,omitempty"`
	Name           *string             `json:"name,omitempty"`
	Phase          *PhaseEnum          `json:"phase,omitempty"`
	PowerPanel     *openapi_types.UUID `json:"power_panel,omitempty"`
	Rack           *openapi_types.UUID `json:"rack"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status  *PowerFeedStatusChoices      `json:"status,omitempty"`
	Supply  *SupplyEnum                  `json:"supply,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type    *PowerFeedTypeChoices        `json:"type,omitempty"`
	Voltage *int                         `json:"voltage,omitempty"`
}

// PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerFeedRequest.relationships.destination.objects.Item.
type PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerFeedRequest.relationships.peer.objects.Item.
type PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerFeedRequest.relationships.source.objects.Item.
type PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerOutletRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *PatchedWritablePowerOutletRequest_FeedLeg `json:"feed_leg,omitempty"`

	// Label Physical label
	Label         *string             `json:"label,omitempty"`
	Name          *string             `json:"name,omitempty"`
	PowerPort     *openapi_types.UUID `json:"power_port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *PatchedWritablePowerOutletRequest_Type `json:"type,omitempty"`
}

// PatchedWritablePowerOutletRequest_FeedLeg Phase (for three-phase feeds)
type PatchedWritablePowerOutletRequest_FeedLeg struct {
	union json.RawMessage
}

// PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerOutletRequest.relationships.destination.objects.Item.
type PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerOutletRequest.relationships.peer.objects.Item.
type PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerOutletRequest.relationships.source.objects.Item.
type PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletRequest_Type Physical port type
type PatchedWritablePowerOutletRequest_Type struct {
	union json.RawMessage
}

// PatchedWritablePowerOutletTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerOutletTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *PatchedWritablePowerOutletTemplateRequest_FeedLeg `json:"feed_leg,omitempty"`

	// Label Physical label
	Label         *string             `json:"label,omitempty"`
	Name          *string             `json:"name,omitempty"`
	PowerPort     *openapi_types.UUID `json:"power_port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PatchedWritablePowerOutletTemplateRequest_Type `json:"type,omitempty"`
}

// PatchedWritablePowerOutletTemplateRequest_FeedLeg Phase (for three-phase feeds)
type PatchedWritablePowerOutletTemplateRequest_FeedLeg struct {
	union json.RawMessage
}

// PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerOutletTemplateRequest.relationships.destination.objects.Item.
type PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerOutletTemplateRequest.relationships.peer.objects.Item.
type PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerOutletTemplateRequest.relationships.source.objects.Item.
type PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerOutletTemplateRequest_Type defines model for PatchedWritablePowerOutletTemplateRequest.Type.
type PatchedWritablePowerOutletTemplateRequest_Type struct {
	union json.RawMessage
}

// PatchedWritablePowerPanelRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerPanelRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	RackGroup     *openapi_types.UUID     `json:"rack_group"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *openapi_types.UUID          `json:"site,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerPanelRequest.relationships.destination.objects.Item.
type PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerPanelRequest.relationships.peer.objects.Item.
type PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerPanelRequest.relationships.source.objects.Item.
type PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerPortRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Device        *openapi_types.UUID     `json:"device,omitempty"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int    `json:"maximum_draw"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *PatchedWritablePowerPortRequest_Type `json:"type,omitempty"`
}

// PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerPortRequest.relationships.destination.objects.Item.
type PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerPortRequest.relationships.peer.objects.Item.
type PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerPortRequest.relationships.source.objects.Item.
type PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortRequest_Type Physical port type
type PatchedWritablePowerPortRequest_Type struct {
	union json.RawMessage
}

// PatchedWritablePowerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePowerPortTemplateRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	DeviceType    *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int    `json:"maximum_draw"`
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PatchedWritablePowerPortTemplateRequest_Type `json:"type,omitempty"`
}

// PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePowerPortTemplateRequest.relationships.destination.objects.Item.
type PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePowerPortTemplateRequest.relationships.peer.objects.Item.
type PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePowerPortTemplateRequest.relationships.source.objects.Item.
type PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePowerPortTemplateRequest_Type defines model for PatchedWritablePowerPortTemplateRequest.Type.
type PatchedWritablePowerPortTemplateRequest_Type struct {
	union json.RawMessage
}

// PatchedWritablePrefixRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritablePrefixRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// IsPool All IP addresses within this prefix are considered usable
	IsPool        *bool               `json:"is_pool,omitempty"`
	Location      *openapi_types.UUID `json:"location"`
	Prefix        *string             `json:"prefix,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritablePrefixRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role The primary function of this prefix
	Role   *openapi_types.UUID          `json:"role"`
	Site   *openapi_types.UUID          `json:"site"`
	Status *PrefixStatusChoices         `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vlan   *openapi_types.UUID          `json:"vlan"`
	Vrf    *openapi_types.UUID          `json:"vrf"`
}

// PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item defines model for PatchedWritablePrefixRequest.relationships.destination.objects.Item.
type PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item defines model for PatchedWritablePrefixRequest.relationships.peer.objects.Item.
type PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritablePrefixRequest_Relationships_Source_Objects_Item defines model for PatchedWritablePrefixRequest.relationships.source.objects.Item.
type PatchedWritablePrefixRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableProviderNetworkRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableProviderNetworkRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Provider      *openapi_types.UUID     `json:"provider,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableProviderNetworkRequest.relationships.destination.objects.Item.
type PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableProviderNetworkRequest.relationships.peer.objects.Item.
type PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item defines model for PatchedWritableProviderNetworkRequest.relationships.source.objects.Item.
type PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRackGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *openapi_types.UUID `json:"site,omitempty"`
	Slug *string             `json:"slug,omitempty"`
}

// PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRackGroupRequest.relationships.destination.objects.Item.
type PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRackGroupRequest.relationships.peer.objects.Item.
type PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRackGroupRequest.relationships.source.objects.Item.
type PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRackRequest struct {
	// AssetTag A unique tag used to identify this rack
	AssetTag     *string                 `json:"asset_tag"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DescUnits Units are numbered top-to-bottom
	DescUnits *bool `json:"desc_units,omitempty"`

	// FacilityId Locally-assigned identifier
	FacilityId *string `json:"facility_id"`

	// Group Assigned group
	Group    *openapi_types.UUID `json:"group"`
	Location *openapi_types.UUID `json:"location"`
	Name     *string             `json:"name,omitempty"`

	// OuterDepth Outer dimension of rack (depth)
	OuterDepth *int                                  `json:"outer_depth"`
	OuterUnit  *PatchedWritableRackRequest_OuterUnit `json:"outer_unit,omitempty"`

	// OuterWidth Outer dimension of rack (width)
	OuterWidth    *int `json:"outer_width"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role Functional role
	Role   *openapi_types.UUID              `json:"role"`
	Serial *string                          `json:"serial,omitempty"`
	Site   *openapi_types.UUID              `json:"site,omitempty"`
	Status *RackStatusChoices               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest     `json:"tags,omitempty"`
	Tenant *openapi_types.UUID              `json:"tenant"`
	Type   *PatchedWritableRackRequest_Type `json:"type,omitempty"`

	// UHeight Height in rack units
	UHeight *int `json:"u_height,omitempty"`

	// Width Rail-to-rail width
	Width *WidthEnum `json:"width,omitempty"`
}

// PatchedWritableRackRequest_OuterUnit defines model for PatchedWritableRackRequest.OuterUnit.
type PatchedWritableRackRequest_OuterUnit struct {
	union json.RawMessage
}

// PatchedWritableRackRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRackRequest.relationships.destination.objects.Item.
type PatchedWritableRackRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRackRequest.relationships.peer.objects.Item.
type PatchedWritableRackRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRackRequest.relationships.source.objects.Item.
type PatchedWritableRackRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackRequest_Type defines model for PatchedWritableRackRequest.Type.
type PatchedWritableRackRequest_Type struct {
	union json.RawMessage
}

// PatchedWritableRackReservationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRackReservationRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Rack          *openapi_types.UUID     `json:"rack,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Units  *map[string]interface{}      `json:"units,omitempty"`
	User   *openapi_types.UUID          `json:"user,omitempty"`
}

// PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRackReservationRequest.relationships.destination.objects.Item.
type PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRackReservationRequest.relationships.peer.objects.Item.
type PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRackReservationRequest.relationships.source.objects.Item.
type PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRearPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *openapi_types.UUID     `json:"device,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type *PortTypeChoices             `json:"type,omitempty"`
}

// PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRearPortRequest.relationships.destination.objects.Item.
type PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRearPortRequest.relationships.peer.objects.Item.
type PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRearPortRequest.relationships.source.objects.Item.
type PatchedWritableRearPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRearPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   *openapi_types.UUID     `json:"device_type,omitempty"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          *string `json:"name,omitempty"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *PortTypeChoices `json:"type,omitempty"`
}

// PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRearPortTemplateRequest.relationships.destination.objects.Item.
type PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRearPortTemplateRequest.relationships.peer.objects.Item.
type PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRearPortTemplateRequest.relationships.source.objects.Item.
type PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRegionRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRegionRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRegionRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRegionRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRegionRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedWritableRegionRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRegionRequest.relationships.destination.objects.Item.
type PatchedWritableRegionRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRegionRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRegionRequest.relationships.peer.objects.Item.
type PatchedWritableRegionRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRegionRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRegionRequest.relationships.source.objects.Item.
type PatchedWritableRegionRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRelationshipAssociationRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableRelationshipAssociationRequest struct {
	DestinationId   *openapi_types.UUID `json:"destination_id,omitempty"`
	DestinationType *string             `json:"destination_type,omitempty"`
	Relationship    *openapi_types.UUID `json:"relationship,omitempty"`
	SourceId        *openapi_types.UUID `json:"source_id,omitempty"`
	SourceType      *string             `json:"source_type,omitempty"`
}

// PatchedWritableRouteTargetRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableRouteTargetRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Name Route target value (formatted in accordance with RFC 4360)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableRouteTargetRequest.relationships.destination.objects.Item.
type PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableRouteTargetRequest.relationships.peer.objects.Item.
type PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item defines model for PatchedWritableRouteTargetRequest.relationships.source.objects.Item.
type PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSecretsGroupAssociationRequest Serializer for `SecretsGroupAssociation` objects.
type PatchedWritableSecretsGroupAssociationRequest struct {
	AccessType *AccessTypeEnum     `json:"access_type,omitempty"`
	Group      *openapi_types.UUID `json:"group,omitempty"`
	Secret     *openapi_types.UUID `json:"secret,omitempty"`
	SecretType *SecretTypeEnum     `json:"secret_type,omitempty"`
}

// PatchedWritableServiceObjectGroupRequest ServiceObjectGroup Serializer.
type PatchedWritableServiceObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableServiceObjectGroupRequest.relationships.destination.objects.Item.
type PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableServiceObjectGroupRequest.relationships.peer.objects.Item.
type PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableServiceObjectGroupRequest.relationships.source.objects.Item.
type PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableServiceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableServiceRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Device        *openapi_types.UUID     `json:"device"`
	Ipaddresses   *[]openapi_types.UUID   `json:"ipaddresses,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Ports         *[]int                  `json:"ports,omitempty"`
	Protocol      *ProtocolEnum           `json:"protocol,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableServiceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	VirtualMachine *openapi_types.UUID          `json:"virtual_machine"`
}

// PatchedWritableServiceRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableServiceRequest.relationships.destination.objects.Item.
type PatchedWritableServiceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableServiceRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableServiceRequest.relationships.peer.objects.Item.
type PatchedWritableServiceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableServiceRequest_Relationships_Source_Objects_Item defines model for PatchedWritableServiceRequest.relationships.source.objects.Item.
type PatchedWritableServiceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSiteRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableSiteRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	Comments     *string                 `json:"comments,omitempty"`
	ContactEmail *openapi_types.Email    `json:"contact_email,omitempty"`
	ContactName  *string                 `json:"contact_name,omitempty"`
	ContactPhone *string                 `json:"contact_phone,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Facility Local facility ID or description
	Facility *string `json:"facility,omitempty"`

	// Latitude GPS coordinate (latitude)
	Latitude *string `json:"latitude"`

	// Longitude GPS coordinate (longitude)
	Longitude       *string             `json:"longitude"`
	Name            *string             `json:"name,omitempty"`
	PhysicalAddress *string             `json:"physical_address,omitempty"`
	Region          *openapi_types.UUID `json:"region"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSiteRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSiteRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSiteRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ShippingAddress *string                      `json:"shipping_address,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Status          *LocationStatusChoices       `json:"status,omitempty"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant          *openapi_types.UUID          `json:"tenant"`
	TimeZone        *string                      `json:"time_zone"`
}

// PatchedWritableSiteRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableSiteRequest.relationships.destination.objects.Item.
type PatchedWritableSiteRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSiteRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableSiteRequest.relationships.peer.objects.Item.
type PatchedWritableSiteRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSiteRequest_Relationships_Source_Objects_Item defines model for PatchedWritableSiteRequest.relationships.source.objects.Item.
type PatchedWritableSiteRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareImageLCMRequest REST API serializer for SoftwareImageLCM records.
type PatchedWritableSoftwareImageLCMRequest struct {
	CustomFields      *map[string]interface{} `json:"custom_fields,omitempty"`
	DefaultImage      *bool                   `json:"default_image,omitempty"`
	DeviceTypes       *[]openapi_types.UUID   `json:"device_types,omitempty"`
	DownloadUrl       *string                 `json:"download_url,omitempty"`
	ImageFileChecksum *string                 `json:"image_file_checksum,omitempty"`
	ImageFileName     *string                 `json:"image_file_name,omitempty"`
	InventoryItems    *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags        *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Relationships     *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Software *openapi_types.UUID          `json:"software,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableSoftwareImageLCMRequest.relationships.destination.objects.Item.
type PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableSoftwareImageLCMRequest.relationships.peer.objects.Item.
type PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableSoftwareImageLCMRequest.relationships.source.objects.Item.
type PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareLCMRequest REST API serializer for SoftwareLCM records.
type PatchedWritableSoftwareLCMRequest struct {
	Alias            *string                 `json:"alias"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	DevicePlatform   *openapi_types.UUID     `json:"device_platform,omitempty"`
	DocumentationUrl *string                 `json:"documentation_url,omitempty"`
	EndOfSupport     *openapi_types.Date     `json:"end_of_support"`
	LongTermSupport  *bool                   `json:"long_term_support,omitempty"`
	PreRelease       *bool                   `json:"pre_release,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate    *openapi_types.Date          `json:"release_date"`
	SoftwareImages *[]openapi_types.UUID        `json:"software_images,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Version        *string                      `json:"version,omitempty"`
}

// PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableSoftwareLCMRequest.relationships.destination.objects.Item.
type PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableSoftwareLCMRequest.relationships.peer.objects.Item.
type PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableSoftwareLCMRequest.relationships.source.objects.Item.
type PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableTenantGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          *string                 `json:"name,omitempty"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableTenantGroupRequest.relationships.destination.objects.Item.
type PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableTenantGroupRequest.relationships.peer.objects.Item.
type PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableTenantGroupRequest.relationships.source.objects.Item.
type PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableTenantRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableTenantRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableTenantRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableTenantRequest.relationships.destination.objects.Item.
type PatchedWritableTenantRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableTenantRequest.relationships.peer.objects.Item.
type PatchedWritableTenantRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableTenantRequest_Relationships_Source_Objects_Item defines model for PatchedWritableTenantRequest.relationships.source.objects.Item.
type PatchedWritableTenantRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableUserObjectGroupRequest UserObjectGroup Serializer.
type PatchedWritableUserObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            *string                 `json:"name,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableUserObjectGroupRequest.relationships.destination.objects.Item.
type PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableUserObjectGroupRequest.relationships.peer.objects.Item.
type PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableUserObjectGroupRequest.relationships.source.objects.Item.
type PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableUserRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type PatchedWritableUserRequest struct {
	DateJoined *time.Time           `json:"date_joined,omitempty"`
	Email      *openapi_types.Email `json:"email,omitempty"`
	FirstName  *string              `json:"first_name,omitempty"`

	// Groups The groups this user belongs to. A user will get all permissions granted to each of their groups.
	Groups *[]int `json:"groups,omitempty"`

	// IsActive Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
	IsActive *bool `json:"is_active,omitempty"`

	// IsStaff Designates whether the user can log into this admin site.
	IsStaff  *bool   `json:"is_staff,omitempty"`
	LastName *string `json:"last_name,omitempty"`
	Password *string `json:"password,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username *string `json:"username,omitempty"`
}

// PatchedWritableVLANGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVLANGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *openapi_types.UUID `json:"site"`
	Slug *string             `json:"slug,omitempty"`
}

// PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVLANGroupRequest.relationships.destination.objects.Item.
type PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVLANGroupRequest.relationships.peer.objects.Item.
type PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVLANGroupRequest.relationships.source.objects.Item.
type PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVLANRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVLANRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVLANRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *openapi_types.UUID          `json:"role"`
	Site   *openapi_types.UUID          `json:"site"`
	Status *VLANStatusChoices           `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vid    *int                         `json:"vid,omitempty"`
}

// PatchedWritableVLANRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVLANRequest.relationships.destination.objects.Item.
type PatchedWritableVLANRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVLANRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVLANRequest.relationships.peer.objects.Item.
type PatchedWritableVLANRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVLANRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVLANRequest.relationships.source.objects.Item.
type PatchedWritableVLANRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVMInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVMInterfaceRequest struct {
	// Bridge Assigned bridge interface
	Bridge       *openapi_types.UUID                     `json:"bridge"`
	CustomFields *map[string]interface{}                 `json:"custom_fields,omitempty"`
	Description  *string                                 `json:"description,omitempty"`
	Enabled      *bool                                   `json:"enabled,omitempty"`
	MacAddress   *string                                 `json:"mac_address"`
	Mode         *PatchedWritableVMInterfaceRequest_Mode `json:"mode,omitempty"`
	Mtu          *int                                    `json:"mtu"`
	Name         *string                                 `json:"name,omitempty"`

	// ParentInterface Assigned parent interface
	ParentInterface *openapi_types.UUID `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status         *InterfaceStatusChoices      `json:"status,omitempty"`
	TaggedVlans    *[]openapi_types.UUID        `json:"tagged_vlans,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UntaggedVlan   *openapi_types.UUID          `json:"untagged_vlan"`
	VirtualMachine *openapi_types.UUID          `json:"virtual_machine,omitempty"`
}

// PatchedWritableVMInterfaceRequest_Mode defines model for PatchedWritableVMInterfaceRequest.Mode.
type PatchedWritableVMInterfaceRequest_Mode struct {
	union json.RawMessage
}

// PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVMInterfaceRequest.relationships.destination.objects.Item.
type PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVMInterfaceRequest.relationships.peer.objects.Item.
type PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVMInterfaceRequest.relationships.source.objects.Item.
type PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVRFRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVRFRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// EnforceUnique Prevent duplicate prefixes/IP addresses within this VRF
	EnforceUnique *bool                 `json:"enforce_unique,omitempty"`
	ExportTargets *[]openapi_types.UUID `json:"export_targets,omitempty"`
	ImportTargets *[]openapi_types.UUID `json:"import_targets,omitempty"`
	Name          *string               `json:"name,omitempty"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd            *string `json:"rd"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVRFRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVRFRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVRFRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PatchedWritableVRFRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVRFRequest.relationships.destination.objects.Item.
type PatchedWritableVRFRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVRFRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVRFRequest.relationships.peer.objects.Item.
type PatchedWritableVRFRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVRFRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVRFRequest.relationships.source.objects.Item.
type PatchedWritableVRFRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableValidatedSoftwareLCMRequest REST API serializer for ValidatedSoftwareLCM records.
type PatchedWritableValidatedSoftwareLCMRequest struct {
	CustomFields   *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRoles    *[]openapi_types.UUID   `json:"device_roles,omitempty"`
	DeviceTypes    *[]openapi_types.UUID   `json:"device_types,omitempty"`
	Devices        *[]openapi_types.UUID   `json:"devices,omitempty"`
	End            *openapi_types.Date     `json:"end"`
	InventoryItems *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags     *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Preferred      *bool                   `json:"preferred,omitempty"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                                              `json:"label,omitempty"`
			ObjectType *string                                                                              `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Software *openapi_types.UUID          `json:"software,omitempty"`
	Start    *openapi_types.Date          `json:"start,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableValidatedSoftwareLCMRequest.relationships.destination.objects.Item.
type PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableValidatedSoftwareLCMRequest.relationships.peer.objects.Item.
type PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for PatchedWritableValidatedSoftwareLCMRequest.relationships.source.objects.Item.
type PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualChassisRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVirtualChassisRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Domain        *string                 `json:"domain,omitempty"`
	Master        *openapi_types.UUID     `json:"master"`
	Name          *string                 `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVirtualChassisRequest.relationships.destination.objects.Item.
type PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVirtualChassisRequest.relationships.peer.objects.Item.
type PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVirtualChassisRequest.relationships.source.objects.Item.
type PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualMachineWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PatchedWritableVirtualMachineWithConfigContextRequest struct {
	Cluster          *openapi_types.UUID     `json:"cluster,omitempty"`
	Comments         *string                 `json:"comments,omitempty"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Disk             *int                    `json:"disk"`
	LocalContextData *map[string]interface{} `json:"local_context_data"`

	// LocalContextSchema Optional schema to validate the structure of the data
	LocalContextSchema *openapi_types.UUID `json:"local_context_schema"`
	Memory             *int                `json:"memory"`
	Name               *string             `json:"name,omitempty"`
	Platform           *openapi_types.UUID `json:"platform"`
	PrimaryIp4         *openapi_types.UUID `json:"primary_ip4"`
	PrimaryIp6         *openapi_types.UUID `json:"primary_ip6"`
	Relationships      *struct {
		Destination *struct {
			Label      *string                                                                                         `json:"label,omitempty"`
			ObjectType *string                                                                                         `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                                  `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                                    `json:"object_type,omitempty"`
			Objects    *[]PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *openapi_types.UUID          `json:"role"`
	Status *VirtualMachineStatusChoices `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vcpus  *int                         `json:"vcpus"`
}

// PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for PatchedWritableVirtualMachineWithConfigContextRequest.relationships.destination.objects.Item.
type PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for PatchedWritableVirtualMachineWithConfigContextRequest.relationships.peer.objects.Item.
type PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item defines model for PatchedWritableVirtualMachineWithConfigContextRequest.relationships.source.objects.Item.
type PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedZoneRequest Zone Serializer.
type PatchedZoneRequest struct {
	CustomFieldData *map[string]interface{}   `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Interfaces      *[]NestedInterfaceRequest `json:"interfaces,omitempty"`

	// Name Name of the zone (e.g. trust)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]PatchedZoneRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]PatchedZoneRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PatchedZoneRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// PatchedZoneRequest_Relationships_Destination_Objects_Item defines model for PatchedZoneRequest.relationships.destination.objects.Item.
type PatchedZoneRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedZoneRequest_Relationships_Peer_Objects_Item defines model for PatchedZoneRequest.relationships.peer.objects.Item.
type PatchedZoneRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PatchedZoneRequest_Relationships_Source_Objects_Item defines model for PatchedZoneRequest.relationships.source.objects.Item.
type PatchedZoneRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PeerEndpoint REST API serializer for PeerEndpoint records.
type PeerEndpoint struct {
	AutonomousSystem *NestedAutonomousSystem `json:"autonomous_system"`
	Created          *openapi_types.Date     `json:"created"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display         *string                `json:"display,omitempty"`
	Enabled         *bool                  `json:"enabled,omitempty"`
	ExportPolicy    *string                `json:"export_policy,omitempty"`
	Id              *openapi_types.UUID    `json:"id,omitempty"`
	ImportPolicy    *string                `json:"import_policy,omitempty"`
	LastUpdated     *time.Time             `json:"last_updated"`
	Peer            *NestedPeerEndpoint    `json:"peer"`
	PeerGroup       *NestedPeerGroup       `json:"peer_group"`
	Peering         *NestedPeering         `json:"peering"`
	RoutingInstance *NestedRoutingInstance `json:"routing_instance"`
	Secret          *NestedSecret          `json:"secret"`
	SourceInterface *NestedInterface       `json:"source_interface"`
	SourceIp        *NestedIPAddress       `json:"source_ip"`
	Tags            *[]TagSerializerField  `json:"tags,omitempty"`
	Url             *string                `json:"url,omitempty"`
}

// PeerGroup REST API serializer for PeerGroup records.
type PeerGroup struct {
	AutonomousSystem *NestedAutonomousSystem `json:"autonomous_system"`
	Created          *openapi_types.Date     `json:"created"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display         *string             `json:"display,omitempty"`
	Enabled         *bool               `json:"enabled,omitempty"`
	ExportPolicy    *string             `json:"export_policy,omitempty"`
	ExtraAttributes *string             `json:"extra_attributes,omitempty"`
	Id              *openapi_types.UUID `json:"id,omitempty"`
	ImportPolicy    *string             `json:"import_policy,omitempty"`
	LastUpdated     *time.Time          `json:"last_updated"`
	Name            string              `json:"name"`
	Role            *openapi_types.UUID `json:"role"`

	// RoutingInstance Nested/brief serializer for PeerEndpoint.
	RoutingInstance NestedRoutingInstance    `json:"routing_instance"`
	Secret          *NestedSecret            `json:"secret"`
	SourceInterface *NestedInterface         `json:"source_interface"`
	SourceIp        *NestedIPAddress         `json:"source_ip"`
	Template        *NestedPeerGroupTemplate `json:"template"`
	Url             *string                  `json:"url,omitempty"`
}

// PeerGroupTemplate REST API serializer for PeerGroup records.
type PeerGroupTemplate struct {
	AutonomousSystem *NestedAutonomousSystem `json:"autonomous_system"`
	Created          *openapi_types.Date     `json:"created"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	Enabled      *bool               `json:"enabled,omitempty"`
	ExportPolicy *string             `json:"export_policy,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	ImportPolicy *string             `json:"import_policy,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`
	Name         string              `json:"name"`
	Role         *openapi_types.UUID `json:"role"`
	Secret       *NestedSecret       `json:"secret"`
	Url          *string             `json:"url,omitempty"`
}

// Peering REST API serializer for Peering records.
type Peering struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Endpoints   *[]NestedPeerEndpoint `json:"endpoints,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Status      struct {
		Label *PeeringStatusLabel `json:"label,omitempty"`
		Value *PeeringStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Url *string `json:"url,omitempty"`
}

// PeeringStatusLabel defines model for Peering.Status.Label.
type PeeringStatusLabel string

// PeeringStatusValue defines model for Peering.Status.Value.
type PeeringStatusValue string

// PeeringRequest REST API serializer for Peering records.
type PeeringRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Status       CircuitStatusChoices    `json:"status"`
}

// PeeringRole REST API serializer for PeeringRole records.
type PeeringRole struct {
	Color        *string                 `json:"color,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// PeeringRoleRequest REST API serializer for PeeringRole records.
type PeeringRoleRequest struct {
	Color        *string                 `json:"color,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Name         string                  `json:"name"`
	Slug         *string                 `json:"slug,omitempty"`
}

// PhaseEnum defines model for PhaseEnum.
type PhaseEnum string

// Platform Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Platform struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display      *string             `json:"display,omitempty"`
	Id           *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated  *time.Time          `json:"last_updated"`
	Manufacturer *NestedManufacturer `json:"manufacturer"`
	Name         string              `json:"name"`

	// NapalmArgs Additional arguments to pass when initiating the NAPALM driver (JSON format)
	NapalmArgs *map[string]interface{} `json:"napalm_args"`

	// NapalmDriver The name of the NAPALM driver to use when interacting with devices
	NapalmDriver        *string `json:"napalm_driver,omitempty"`
	NotesUrl            *string `json:"notes_url,omitempty"`
	Slug                *string `json:"slug,omitempty"`
	Url                 *string `json:"url,omitempty"`
	VirtualmachineCount *int    `json:"virtualmachine_count,omitempty"`
}

// PlatformEnum defines model for PlatformEnum.
type PlatformEnum string

// Policy Policy Serializer.
type Policy struct {
	CustomFieldData       *map[string]interface{}        `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]PolicyDeviceM2MNested       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]PolicyDynamicGroupM2MNested `json:"assigned_dynamic_groups,omitempty"`
	Created               *openapi_types.Date            `json:"created"`
	CustomFields          *map[string]interface{}        `json:"custom_fields,omitempty"`
	Description           *string                        `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	PolicyRules *[]openapi_types.UUID `json:"policy_rules,omitempty"`
	Status      *struct {
		Label *PolicyStatusLabel `json:"label,omitempty"`
		Value *PolicyStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *openapi_types.UUID   `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
}

// PolicyStatusLabel defines model for Policy.Status.Label.
type PolicyStatusLabel string

// PolicyStatusValue defines model for Policy.Status.Value.
type PolicyStatusValue string

// PolicyDeviceM2MNested PolicyDeviceM2M NestedSerializer.
type PolicyDeviceM2MNested struct {
	Device openapi_types.UUID `json:"device"`
	Weight *int               `json:"weight,omitempty"`
}

// PolicyDeviceM2MNestedRequest PolicyDeviceM2M NestedSerializer.
type PolicyDeviceM2MNestedRequest struct {
	Device *openapi_types.UUID `json:"device,omitempty"`
	Weight *int                `json:"weight,omitempty"`
}

// PolicyDynamicGroupM2MNested PolicyDynamicGroupM2M NestedSerializer.
type PolicyDynamicGroupM2MNested struct {
	DynamicGroup openapi_types.UUID `json:"dynamic_group"`
	Weight       *int               `json:"weight,omitempty"`
}

// PolicyDynamicGroupM2MNestedRequest PolicyDynamicGroupM2M NestedSerializer.
type PolicyDynamicGroupM2MNestedRequest struct {
	DynamicGroup *openapi_types.UUID `json:"dynamic_group,omitempty"`
	Weight       *int                `json:"weight,omitempty"`
}

// PolicyRequest Policy Serializer.
type PolicyRequest struct {
	CustomFieldData       *map[string]interface{}               `json:"_custom_field_data,omitempty"`
	AssignedDevices       *[]PolicyDeviceM2MNestedRequest       `json:"assigned_devices,omitempty"`
	AssignedDynamicGroups *[]PolicyDynamicGroupM2MNestedRequest `json:"assigned_dynamic_groups,omitempty"`
	CustomFields          *map[string]interface{}               `json:"custom_fields,omitempty"`
	Description           *string                               `json:"description,omitempty"`
	Name                  string                                `json:"name"`
	Relationships         *struct {
		Destination *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]PolicyRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                          `json:"label,omitempty"`
			ObjectType *string                                          `json:"object_type,omitempty"`
			Objects    *[]PolicyRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                            `json:"label,omitempty"`
			ObjectType *string                                            `json:"object_type,omitempty"`
			Objects    *[]PolicyRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// PolicyRequest_Relationships_Destination_Objects_Item defines model for PolicyRequest.relationships.destination.objects.Item.
type PolicyRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PolicyRequest_Relationships_Peer_Objects_Item defines model for PolicyRequest.relationships.peer.objects.Item.
type PolicyRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PolicyRequest_Relationships_Source_Objects_Item defines model for PolicyRequest.relationships.source.objects.Item.
type PolicyRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// PolicyRule PolicyRule Serializer.
type PolicyRule struct {
	CustomFieldData          *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Action                   ActionEnum              `json:"action"`
	Created                  *openapi_types.Date     `json:"created"`
	CustomFields             *map[string]interface{} `json:"custom_fields,omitempty"`
	Description              *string                 `json:"description"`
	DestinationAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *PolicyRuleDestinationAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleDestinationAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"destination_address_groups,omitempty"`
	DestinationAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *PolicyRuleDestinationAddressesStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleDestinationAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"destination_addresses,omitempty"`
	DestinationServiceGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display        *string             `json:"display,omitempty"`
		Id             *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated    *time.Time          `json:"last_updated"`
		Name           string              `json:"name"`
		NotesUrl       *string             `json:"notes_url,omitempty"`
		ServiceObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string             `json:"display,omitempty"`
			Id      *openapi_types.UUID `json:"id,omitempty"`

			// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
			IpProtocol  PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol `json:"ip_protocol"`
			LastUpdated *time.Time                                                 `json:"last_updated"`

			// Name Name of the service (e.g. HTTP)
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
			Port   *string `json:"port"`
			Status *struct {
				Label *PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel `json:"label,omitempty"`
				Value *PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"service_objects,omitempty"`
		Status *struct {
			Label *PolicyRuleDestinationServiceGroupsStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleDestinationServiceGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"destination_service_groups,omitempty"`
	DestinationServices *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  PolicyRuleDestinationServicesIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                              `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *PolicyRuleDestinationServicesStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleDestinationServicesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"destination_services,omitempty"`

	// DestinationZone Zone Serializer.
	DestinationZone *Zone `json:"destination_zone,omitempty"`

	// Display Human friendly display value
	Display             *string             `json:"display,omitempty"`
	Id                  *openapi_types.UUID `json:"id,omitempty"`
	Index               *int                `json:"index"`
	LastUpdated         *time.Time          `json:"last_updated"`
	Log                 *bool               `json:"log,omitempty"`
	Name                string              `json:"name"`
	NotesUrl            *string             `json:"notes_url,omitempty"`
	RequestId           *string             `json:"request_id"`
	SourceAddressGroups *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		AddressObjects  *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
			Description     *string                 `json:"description,omitempty"`

			// Display Human friendly display value
			Display *string `json:"display,omitempty"`

			// Fqdn Nested serializer for FQDN.
			Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
			Id   *openapi_types.UUID `json:"id,omitempty"`

			// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

			// IpRange Nested serializer for IPRange.
			IpRange     *NestedIPRange `json:"ip_range,omitempty"`
			LastUpdated *time.Time     `json:"last_updated"`

			// Name Name descriptor for an address object type.
			Name     string  `json:"name"`
			NotesUrl *string `json:"notes_url,omitempty"`

			// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
			// primary key value on write operations.
			Prefix *NestedPrefix `json:"prefix,omitempty"`
			Status *struct {
				Label *PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel `json:"label,omitempty"`
				Value *PolicyRuleSourceAddressGroupsAddressObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`
		} `json:"address_objects,omitempty"`
		Created      *openapi_types.Date     `json:"created"`
		CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
		Description  *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Name descriptor for a group address objects.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *PolicyRuleSourceAddressGroupsStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleSourceAddressGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"source_address_groups,omitempty"`
	SourceAddresses *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string `json:"display,omitempty"`

		// Fqdn Nested serializer for FQDN.
		Fqdn *NestedFQDN         `json:"fqdn,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`

		// IpAddress Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		IpAddress *NestedIPAddress `json:"ip_address,omitempty"`

		// IpRange Nested serializer for IPRange.
		IpRange     *NestedIPRange `json:"ip_range,omitempty"`
		LastUpdated *time.Time     `json:"last_updated"`

		// Name Name descriptor for an address object type.
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Prefix Returns a nested representation of an object on read, but accepts either the nested representation or the
		// primary key value on write operations.
		Prefix *NestedPrefix `json:"prefix,omitempty"`
		Status *struct {
			Label *PolicyRuleSourceAddressesStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleSourceAddressesStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"source_addresses,omitempty"`
	SourceServiceGroups *[]openapi_types.UUID `json:"source_service_groups,omitempty"`
	SourceServices      *[]openapi_types.UUID `json:"source_services,omitempty"`
	SourceUserGroups    *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`
		Name        string              `json:"name"`
		NotesUrl    *string             `json:"notes_url,omitempty"`
		Status      *struct {
			Label *PolicyRuleSourceUserGroupsStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleSourceUserGroupsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags        *[]TagSerializerField `json:"tags,omitempty"`
		Url         *string               `json:"url,omitempty"`
		UserObjects *[]struct {
			CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
			Created         *openapi_types.Date     `json:"created"`
			CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

			// Display Human friendly display value
			Display     *string             `json:"display,omitempty"`
			Id          *openapi_types.UUID `json:"id,omitempty"`
			LastUpdated *time.Time          `json:"last_updated"`

			// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
			Name     *string `json:"name,omitempty"`
			NotesUrl *string `json:"notes_url,omitempty"`
			Status   *struct {
				Label *PolicyRuleSourceUserGroupsUserObjectsStatusLabel `json:"label,omitempty"`
				Value *PolicyRuleSourceUserGroupsUserObjectsStatusValue `json:"value,omitempty"`
			} `json:"status,omitempty"`
			Tags *[]TagSerializerField `json:"tags,omitempty"`
			Url  *string               `json:"url,omitempty"`

			// Username Signifies the username in identify provider (e.g. john.smith)
			Username string `json:"username"`
		} `json:"user_objects,omitempty"`
	} `json:"source_user_groups,omitempty"`
	SourceUsers *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name     *string `json:"name,omitempty"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *PolicyRuleSourceUsersStatusLabel `json:"label,omitempty"`
			Value *PolicyRuleSourceUsersStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"source_users,omitempty"`

	// SourceZone Zone Serializer.
	SourceZone *Zone `json:"source_zone,omitempty"`
	Status     *struct {
		Label *PolicyRuleStatusLabel `json:"label,omitempty"`
		Value *PolicyRuleStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel defines model for PolicyRule.DestinationAddressGroups.AddressObjects.Status.Label.
type PolicyRuleDestinationAddressGroupsAddressObjectsStatusLabel string

// PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue defines model for PolicyRule.DestinationAddressGroups.AddressObjects.Status.Value.
type PolicyRuleDestinationAddressGroupsAddressObjectsStatusValue string

// PolicyRuleDestinationAddressGroupsStatusLabel defines model for PolicyRule.DestinationAddressGroups.Status.Label.
type PolicyRuleDestinationAddressGroupsStatusLabel string

// PolicyRuleDestinationAddressGroupsStatusValue defines model for PolicyRule.DestinationAddressGroups.Status.Value.
type PolicyRuleDestinationAddressGroupsStatusValue string

// PolicyRuleDestinationAddressesStatusLabel defines model for PolicyRule.DestinationAddresses.Status.Label.
type PolicyRuleDestinationAddressesStatusLabel string

// PolicyRuleDestinationAddressesStatusValue defines model for PolicyRule.DestinationAddresses.Status.Value.
type PolicyRuleDestinationAddressesStatusValue string

// PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PolicyRuleDestinationServiceGroupsServiceObjectsIpProtocol string

// PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel defines model for PolicyRule.DestinationServiceGroups.ServiceObjects.Status.Label.
type PolicyRuleDestinationServiceGroupsServiceObjectsStatusLabel string

// PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue defines model for PolicyRule.DestinationServiceGroups.ServiceObjects.Status.Value.
type PolicyRuleDestinationServiceGroupsServiceObjectsStatusValue string

// PolicyRuleDestinationServiceGroupsStatusLabel defines model for PolicyRule.DestinationServiceGroups.Status.Label.
type PolicyRuleDestinationServiceGroupsStatusLabel string

// PolicyRuleDestinationServiceGroupsStatusValue defines model for PolicyRule.DestinationServiceGroups.Status.Value.
type PolicyRuleDestinationServiceGroupsStatusValue string

// PolicyRuleDestinationServicesIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type PolicyRuleDestinationServicesIpProtocol string

// PolicyRuleDestinationServicesStatusLabel defines model for PolicyRule.DestinationServices.Status.Label.
type PolicyRuleDestinationServicesStatusLabel string

// PolicyRuleDestinationServicesStatusValue defines model for PolicyRule.DestinationServices.Status.Value.
type PolicyRuleDestinationServicesStatusValue string

// PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel defines model for PolicyRule.SourceAddressGroups.AddressObjects.Status.Label.
type PolicyRuleSourceAddressGroupsAddressObjectsStatusLabel string

// PolicyRuleSourceAddressGroupsAddressObjectsStatusValue defines model for PolicyRule.SourceAddressGroups.AddressObjects.Status.Value.
type PolicyRuleSourceAddressGroupsAddressObjectsStatusValue string

// PolicyRuleSourceAddressGroupsStatusLabel defines model for PolicyRule.SourceAddressGroups.Status.Label.
type PolicyRuleSourceAddressGroupsStatusLabel string

// PolicyRuleSourceAddressGroupsStatusValue defines model for PolicyRule.SourceAddressGroups.Status.Value.
type PolicyRuleSourceAddressGroupsStatusValue string

// PolicyRuleSourceAddressesStatusLabel defines model for PolicyRule.SourceAddresses.Status.Label.
type PolicyRuleSourceAddressesStatusLabel string

// PolicyRuleSourceAddressesStatusValue defines model for PolicyRule.SourceAddresses.Status.Value.
type PolicyRuleSourceAddressesStatusValue string

// PolicyRuleSourceUserGroupsStatusLabel defines model for PolicyRule.SourceUserGroups.Status.Label.
type PolicyRuleSourceUserGroupsStatusLabel string

// PolicyRuleSourceUserGroupsStatusValue defines model for PolicyRule.SourceUserGroups.Status.Value.
type PolicyRuleSourceUserGroupsStatusValue string

// PolicyRuleSourceUserGroupsUserObjectsStatusLabel defines model for PolicyRule.SourceUserGroups.UserObjects.Status.Label.
type PolicyRuleSourceUserGroupsUserObjectsStatusLabel string

// PolicyRuleSourceUserGroupsUserObjectsStatusValue defines model for PolicyRule.SourceUserGroups.UserObjects.Status.Value.
type PolicyRuleSourceUserGroupsUserObjectsStatusValue string

// PolicyRuleSourceUsersStatusLabel defines model for PolicyRule.SourceUsers.Status.Label.
type PolicyRuleSourceUsersStatusLabel string

// PolicyRuleSourceUsersStatusValue defines model for PolicyRule.SourceUsers.Status.Value.
type PolicyRuleSourceUsersStatusValue string

// PolicyRuleStatusLabel defines model for PolicyRule.Status.Label.
type PolicyRuleStatusLabel string

// PolicyRuleStatusValue defines model for PolicyRule.Status.Value.
type PolicyRuleStatusValue string

// PortTypeChoices defines model for PortTypeChoices.
type PortTypeChoices string

// PowerFeed Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerFeed struct {
	Amperage                   *int                    `json:"amperage,omitempty"`
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	Comments                   *string                 `json:"comments,omitempty"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// MaxUtilization Maximum permissible draw (percentage)
	MaxUtilization *int    `json:"max_utilization,omitempty"`
	Name           string  `json:"name"`
	NotesUrl       *string `json:"notes_url,omitempty"`
	Phase          *struct {
		Label *PowerFeedPhaseLabel `json:"label,omitempty"`
		Value *PowerFeedPhaseValue `json:"value,omitempty"`
	} `json:"phase,omitempty"`

	// PowerPanel Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPanel NestedPowerPanel `json:"power_panel"`
	Rack       *NestedRack      `json:"rack"`
	Status     struct {
		Label *PowerFeedStatusLabel `json:"label,omitempty"`
		Value *PowerFeedStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Supply *struct {
		Label *PowerFeedSupplyLabel `json:"label,omitempty"`
		Value *PowerFeedSupplyValue `json:"value,omitempty"`
	} `json:"supply,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Type *struct {
		Label *PowerFeedTypeLabel `json:"label,omitempty"`
		Value *PowerFeedTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url     *string `json:"url,omitempty"`
	Voltage *int    `json:"voltage,omitempty"`
}

// PowerFeedPhaseLabel defines model for PowerFeed.Phase.Label.
type PowerFeedPhaseLabel string

// PowerFeedPhaseValue defines model for PowerFeed.Phase.Value.
type PowerFeedPhaseValue string

// PowerFeedStatusLabel defines model for PowerFeed.Status.Label.
type PowerFeedStatusLabel string

// PowerFeedStatusValue defines model for PowerFeed.Status.Value.
type PowerFeedStatusValue string

// PowerFeedSupplyLabel defines model for PowerFeed.Supply.Label.
type PowerFeedSupplyLabel string

// PowerFeedSupplyValue defines model for PowerFeed.Supply.Value.
type PowerFeedSupplyValue string

// PowerFeedTypeLabel defines model for PowerFeed.Type.Label.
type PowerFeedTypeLabel string

// PowerFeedTypeValue defines model for PowerFeed.Type.Value.
type PowerFeedTypeValue string

// PowerFeedStatusChoices defines model for PowerFeedStatusChoices.
type PowerFeedStatusChoices string

// PowerFeedTypeChoices defines model for PowerFeedTypeChoices.
type PowerFeedTypeChoices string

// PowerOutlet Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerOutlet struct {
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	FeedLeg *struct {
		Label *PowerOutletFeedLegLabel `json:"label,omitempty"`
		Value *PowerOutletFeedLegValue `json:"value,omitempty"`
	} `json:"feed_leg,omitempty"`
	Id *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	NotesUrl    *string    `json:"notes_url,omitempty"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort *NestedPowerPort      `json:"power_port,omitempty"`
	Tags      *[]TagSerializerField `json:"tags,omitempty"`
	Type      *struct {
		Label *PowerOutletTypeLabel `json:"label,omitempty"`
		Value *PowerOutletTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// PowerOutletFeedLegLabel defines model for PowerOutlet.FeedLeg.Label.
type PowerOutletFeedLegLabel string

// PowerOutletFeedLegValue defines model for PowerOutlet.FeedLeg.Value.
type PowerOutletFeedLegValue string

// PowerOutletTypeLabel defines model for PowerOutlet.Type.Label.
type PowerOutletTypeLabel string

// PowerOutletTypeValue defines model for PowerOutlet.Type.Value.
type PowerOutletTypeValue string

// PowerOutletTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerOutletTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	FeedLeg *struct {
		Label *PowerOutletTemplateFeedLegLabel `json:"label,omitempty"`
		Value *PowerOutletTemplateFeedLegValue `json:"value,omitempty"`
	} `json:"feed_leg,omitempty"`
	Id *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`

	// PowerPort Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	PowerPort *NestedPowerPortTemplate `json:"power_port,omitempty"`
	Type      *struct {
		Label *PowerOutletTemplateTypeLabel `json:"label,omitempty"`
		Value *PowerOutletTemplateTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// PowerOutletTemplateFeedLegLabel defines model for PowerOutletTemplate.FeedLeg.Label.
type PowerOutletTemplateFeedLegLabel string

// PowerOutletTemplateFeedLegValue defines model for PowerOutletTemplate.FeedLeg.Value.
type PowerOutletTemplateFeedLegValue string

// PowerOutletTemplateTypeLabel defines model for PowerOutletTemplate.Type.Label.
type PowerOutletTemplateTypeLabel string

// PowerOutletTemplateTypeValue defines model for PowerOutletTemplate.Type.Value.
type PowerOutletTemplateTypeValue string

// PowerOutletTypeChoices defines model for PowerOutletTypeChoices.
type PowerOutletTypeChoices string

// PowerPanel Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerPanel struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display        *string             `json:"display,omitempty"`
	Id             *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated    *time.Time          `json:"last_updated"`
	Location       *NestedLocation     `json:"location"`
	Name           string              `json:"name"`
	NotesUrl       *string             `json:"notes_url,omitempty"`
	PowerfeedCount *int                `json:"powerfeed_count,omitempty"`
	RackGroup      *NestedRackGroup    `json:"rack_group"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site NestedSite            `json:"site"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// PowerPort Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerPort struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw              *int                    `json:"allocated_draw"`
	Cable                      *NestedCable            `json:"cable,omitempty"`
	CablePeer                  *map[string]interface{} `json:"cable_peer"`
	CablePeerType              *string                 `json:"cable_peer_type"`
	ConnectedEndpoint          *map[string]interface{} `json:"connected_endpoint"`
	ConnectedEndpointReachable *bool                   `json:"connected_endpoint_reachable"`
	ConnectedEndpointType      *string                 `json:"connected_endpoint_type"`
	Created                    *openapi_types.Date     `json:"created"`
	CustomFields               *map[string]interface{} `json:"custom_fields,omitempty"`
	Description                *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw *int                  `json:"maximum_draw"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Type        *struct {
		Label *PowerPortTypeLabel `json:"label,omitempty"`
		Value *PowerPortTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// PowerPortTypeLabel defines model for PowerPort.Type.Label.
type PowerPortTypeLabel string

// PowerPortTypeValue defines model for PowerPort.Type.Value.
type PowerPortTypeValue string

// PowerPortTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type PowerPortTemplate struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	Created       *openapi_types.Date     `json:"created"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw *int   `json:"maximum_draw"`
	Name        string `json:"name"`
	Type        *struct {
		Label *PowerPortTemplateTypeLabel `json:"label,omitempty"`
		Value *PowerPortTemplateTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`
	Url *string `json:"url,omitempty"`
}

// PowerPortTemplateTypeLabel defines model for PowerPortTemplate.Type.Label.
type PowerPortTemplateTypeLabel string

// PowerPortTemplateTypeValue defines model for PowerPortTemplate.Type.Value.
type PowerPortTemplateTypeValue string

// PowerPortTypeChoices defines model for PowerPortTypeChoices.
type PowerPortTypeChoices string

// Prefix Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Prefix struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Family  *struct {
		Label *PrefixFamilyLabel `json:"label,omitempty"`
		Value *PrefixFamilyValue `json:"value,omitempty"`
	} `json:"family,omitempty"`
	Id *openapi_types.UUID `json:"id,omitempty"`

	// IsPool All IP addresses within this prefix are considered usable
	IsPool      *bool           `json:"is_pool,omitempty"`
	LastUpdated *time.Time      `json:"last_updated"`
	Location    *NestedLocation `json:"location"`
	NotesUrl    *string         `json:"notes_url,omitempty"`
	Prefix      string          `json:"prefix"`
	Role        *NestedRole     `json:"role"`
	Site        *NestedSite     `json:"site"`
	Status      struct {
		Label *PrefixStatusLabel `json:"label,omitempty"`
		Value *PrefixStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
	Vlan   *NestedVLAN           `json:"vlan"`
	Vrf    *NestedVRF            `json:"vrf"`
}

// PrefixFamilyLabel defines model for Prefix.Family.Label.
type PrefixFamilyLabel string

// PrefixFamilyValue defines model for Prefix.Family.Value.
type PrefixFamilyValue int

// PrefixStatusLabel defines model for Prefix.Status.Label.
type PrefixStatusLabel string

// PrefixStatusValue defines model for Prefix.Status.Value.
type PrefixStatusValue string

// PrefixLengthRequest defines model for PrefixLengthRequest.
type PrefixLengthRequest struct {
	PrefixLength int `json:"prefix_length"`
}

// PrefixStatusChoices defines model for PrefixStatusChoices.
type PrefixStatusChoices string

// ProtocolEnum defines model for ProtocolEnum.
type ProtocolEnum string

// ProvidedContentsEnum defines model for ProvidedContentsEnum.
type ProvidedContentsEnum string

// Provider Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Provider struct {
	Account      *string `json:"account,omitempty"`
	AdminContact *string `json:"admin_contact,omitempty"`

	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	CircuitCount *int                    `json:"circuit_count,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NocContact  *string               `json:"noc_contact,omitempty"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	PortalUrl   *string               `json:"portal_url,omitempty"`
	Slug        *string               `json:"slug,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// ProviderLCM API serializer.
type ProviderLCM struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display         *string               `json:"display,omitempty"`
	Email           *openapi_types.Email  `json:"email,omitempty"`
	Id              *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated     *time.Time            `json:"last_updated"`
	Name            string                `json:"name"`
	Phone           *string               `json:"phone,omitempty"`
	PhysicalAddress *string               `json:"physical_address,omitempty"`
	Tags            *[]TagSerializerField `json:"tags,omitempty"`
	Url             *string               `json:"url,omitempty"`
}

// ProviderLCMRequest API serializer.
type ProviderLCMRequest struct {
	Comments        *string                 `json:"comments,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Email           *openapi_types.Email    `json:"email,omitempty"`
	Name            string                  `json:"name"`
	Phone           *string                 `json:"phone,omitempty"`
	PhysicalAddress *string                 `json:"physical_address,omitempty"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]ProviderLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]ProviderLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]ProviderLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ProviderLCMRequest_Relationships_Destination_Objects_Item defines model for ProviderLCMRequest.relationships.destination.objects.Item.
type ProviderLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ProviderLCMRequest_Relationships_Peer_Objects_Item defines model for ProviderLCMRequest.relationships.peer.objects.Item.
type ProviderLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ProviderLCMRequest_Relationships_Source_Objects_Item defines model for ProviderLCMRequest.relationships.source.objects.Item.
type ProviderLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ProviderNetwork Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ProviderNetwork struct {
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`

	// Provider Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Provider NestedProvider        `json:"provider"`
	Slug     *string               `json:"slug,omitempty"`
	Tags     *[]TagSerializerField `json:"tags,omitempty"`
	Url      *string               `json:"url,omitempty"`
}

// ProviderRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type ProviderRequest struct {
	Account      *string `json:"account,omitempty"`
	AdminContact *string `json:"admin_contact,omitempty"`

	// Asn 32-bit autonomous system number
	Asn           *int64                  `json:"asn"`
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Name          string                  `json:"name"`
	NocContact    *string                 `json:"noc_contact,omitempty"`
	PortalUrl     *string                 `json:"portal_url,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]ProviderRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                            `json:"label,omitempty"`
			ObjectType *string                                            `json:"object_type,omitempty"`
			Objects    *[]ProviderRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]ProviderRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ProviderRequest_Relationships_Destination_Objects_Item defines model for ProviderRequest.relationships.destination.objects.Item.
type ProviderRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ProviderRequest_Relationships_Peer_Objects_Item defines model for ProviderRequest.relationships.peer.objects.Item.
type ProviderRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ProviderRequest_Relationships_Source_Objects_Item defines model for ProviderRequest.relationships.source.objects.Item.
type ProviderRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RIR Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RIR struct {
	AggregateCount *int                    `json:"aggregate_count,omitempty"`
	Created        *openapi_types.Date     `json:"created"`
	CustomFields   *map[string]interface{} `json:"custom_fields,omitempty"`
	Description    *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// IsPrivate IP space managed by this RIR is considered private
	IsPrivate   *bool      `json:"is_private,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	NotesUrl    *string    `json:"notes_url,omitempty"`
	Slug        *string    `json:"slug,omitempty"`
	Url         *string    `json:"url,omitempty"`
}

// RIRRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RIRRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// IsPrivate IP space managed by this RIR is considered private
	IsPrivate     *bool  `json:"is_private,omitempty"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]RIRRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                       `json:"label,omitempty"`
			ObjectType *string                                       `json:"object_type,omitempty"`
			Objects    *[]RIRRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                         `json:"label,omitempty"`
			ObjectType *string                                         `json:"object_type,omitempty"`
			Objects    *[]RIRRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// RIRRequest_Relationships_Destination_Objects_Item defines model for RIRRequest.relationships.destination.objects.Item.
type RIRRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RIRRequest_Relationships_Peer_Objects_Item defines model for RIRRequest.relationships.peer.objects.Item.
type RIRRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RIRRequest_Relationships_Source_Objects_Item defines model for RIRRequest.relationships.source.objects.Item.
type RIRRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Rack Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Rack struct {
	// AssetTag A unique tag used to identify this rack
	AssetTag     *string                 `json:"asset_tag"`
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DescUnits Units are numbered top-to-bottom
	DescUnits   *bool `json:"desc_units,omitempty"`
	DeviceCount *int  `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// FacilityId Locally-assigned identifier
	FacilityId  *string             `json:"facility_id"`
	Group       *NestedRackGroup    `json:"group"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Location    *NestedLocation     `json:"location"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`

	// OuterDepth Outer dimension of rack (depth)
	OuterDepth *int `json:"outer_depth"`
	OuterUnit  *struct {
		Label *RackOuterUnitLabel `json:"label,omitempty"`
		Value *RackOuterUnitValue `json:"value,omitempty"`
	} `json:"outer_unit,omitempty"`

	// OuterWidth Outer dimension of rack (width)
	OuterWidth     *int            `json:"outer_width"`
	PowerfeedCount *int            `json:"powerfeed_count,omitempty"`
	Role           *NestedRackRole `json:"role"`
	Serial         *string         `json:"serial,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site   NestedSite `json:"site"`
	Status struct {
		Label *RackStatusLabel `json:"label,omitempty"`
		Value *RackStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Type   *struct {
		Label *RackTypeLabel `json:"label,omitempty"`
		Value *RackTypeValue `json:"value,omitempty"`
	} `json:"type,omitempty"`

	// UHeight Height in rack units
	UHeight *int    `json:"u_height,omitempty"`
	Url     *string `json:"url,omitempty"`
	Width   *struct {
		Label *RackWidthLabel `json:"label,omitempty"`
		Value *RackWidthValue `json:"value,omitempty"`
	} `json:"width,omitempty"`
}

// RackOuterUnitLabel defines model for Rack.OuterUnit.Label.
type RackOuterUnitLabel string

// RackOuterUnitValue defines model for Rack.OuterUnit.Value.
type RackOuterUnitValue string

// RackStatusLabel defines model for Rack.Status.Label.
type RackStatusLabel string

// RackStatusValue defines model for Rack.Status.Value.
type RackStatusValue string

// RackTypeLabel defines model for Rack.Type.Label.
type RackTypeLabel string

// RackTypeValue defines model for Rack.Type.Value.
type RackTypeValue string

// RackWidthLabel defines model for Rack.Width.Label.
type RackWidthLabel string

// RackWidthValue defines model for Rack.Width.Value.
type RackWidthValue int

// RackGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RackGroup struct {
	Depth        *int                    `json:"_depth,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Location    *NestedLocation     `json:"location"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Parent      *NestedRackGroup    `json:"parent"`
	RackCount   *int                `json:"rack_count,omitempty"`

	// Site Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Site NestedSite `json:"site"`
	Slug *string    `json:"slug,omitempty"`
	Url  *string    `json:"url,omitempty"`
}

// RackReservation Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RackReservation struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  string                  `json:"description"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	NotesUrl    *string             `json:"notes_url,omitempty"`

	// Rack Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Rack   NestedRack             `json:"rack"`
	Tags   *[]TagSerializerField  `json:"tags,omitempty"`
	Tenant *NestedTenant          `json:"tenant"`
	Units  map[string]interface{} `json:"units"`
	Url    *string                `json:"url,omitempty"`

	// User Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	User NestedUser `json:"user"`
}

// RackRole Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RackRole struct {
	Color        *string                 `json:"color,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	RackCount   *int                `json:"rack_count,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// RackRoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RackRoleRequest struct {
	Color         *string                 `json:"color,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]RackRoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                            `json:"label,omitempty"`
			ObjectType *string                                            `json:"object_type,omitempty"`
			Objects    *[]RackRoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]RackRoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// RackRoleRequest_Relationships_Destination_Objects_Item defines model for RackRoleRequest.relationships.destination.objects.Item.
type RackRoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RackRoleRequest_Relationships_Peer_Objects_Item defines model for RackRoleRequest.relationships.peer.objects.Item.
type RackRoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RackRoleRequest_Relationships_Source_Objects_Item defines model for RackRoleRequest.relationships.source.objects.Item.
type RackRoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RackStatusChoices defines model for RackStatusChoices.
type RackStatusChoices string

// RackTypeChoices defines model for RackTypeChoices.
type RackTypeChoices string

// RackUnit A rack unit is an abstraction formed by the set (rack, position, face); it does not exist as a row in the database.
type RackUnit struct {
	Device *NestedDevice `json:"device,omitempty"`
	Face   *struct {
		Label *RackUnitFaceLabel `json:"label,omitempty"`
		Value *RackUnitFaceValue `json:"value,omitempty"`
	} `json:"face,omitempty"`
	Id       *int    `json:"id,omitempty"`
	Name     *string `json:"name,omitempty"`
	Occupied *bool   `json:"occupied,omitempty"`
}

// RackUnitFaceLabel defines model for RackUnit.Face.Label.
type RackUnitFaceLabel string

// RackUnitFaceValue defines model for RackUnit.Face.Value.
type RackUnitFaceValue string

// RearPort Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RearPort struct {
	Cable         *NestedCable            `json:"cable,omitempty"`
	CablePeer     *map[string]interface{} `json:"cable_peer"`
	CablePeerType *string                 `json:"cable_peer_type"`
	Created       *openapi_types.Date     `json:"created"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`

	// Device Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Device NestedDevice `json:"device"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string               `json:"label,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Positions   *int                  `json:"positions,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Type        struct {
		Label *RearPortTypeLabel `json:"label,omitempty"`
		Value *RearPortTypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`
}

// RearPortTypeLabel defines model for RearPort.Type.Label.
type RearPortTypeLabel string

// RearPortTypeValue defines model for RearPort.Type.Value.
type RearPortTypeValue string

// RearPortTemplate Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RearPortTemplate struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// DeviceType Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DeviceType NestedDeviceType `json:"device_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Label Physical label
	Label       *string    `json:"label,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	Positions   *int       `json:"positions,omitempty"`
	Type        struct {
		Label *RearPortTemplateTypeLabel `json:"label,omitempty"`
		Value *RearPortTemplateTypeValue `json:"value,omitempty"`
	} `json:"type"`
	Url *string `json:"url,omitempty"`
}

// RearPortTemplateTypeLabel defines model for RearPortTemplate.Type.Label.
type RearPortTemplateTypeLabel string

// RearPortTemplateTypeValue defines model for RearPortTemplate.Type.Value.
type RearPortTemplateTypeValue string

// Region Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Region struct {
	Depth        *int                    `json:"_depth,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Parent      *NestedRegion       `json:"parent"`
	SiteCount   *int                `json:"site_count,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// RegularExpressionValidationRule Serializer for `RegularExpressionValidationRule` objects.
type RegularExpressionValidationRule struct {
	ContentType string              `json:"content_type"`
	Created     *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`
	Enabled *bool   `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage      *string             `json:"error_message"`
	Field             string              `json:"field"`
	Id                *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated       *time.Time          `json:"last_updated"`
	Name              string              `json:"name"`
	RegularExpression string              `json:"regular_expression"`
	Slug              string              `json:"slug"`
	Url               *string             `json:"url,omitempty"`
}

// RegularExpressionValidationRuleRequest Serializer for `RegularExpressionValidationRule` objects.
type RegularExpressionValidationRuleRequest struct {
	ContentType string `json:"content_type"`
	Enabled     *bool  `json:"enabled,omitempty"`

	// ErrorMessage Optional error message to display when validation fails.
	ErrorMessage      *string `json:"error_message"`
	Field             string  `json:"field"`
	Name              string  `json:"name"`
	RegularExpression string  `json:"regular_expression"`
	Slug              string  `json:"slug"`
}

// Relationship Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type Relationship struct {
	Created     *openapi_types.Date `json:"created"`
	Description *string             `json:"description,omitempty"`

	// DestinationFilter Filterset filter matching the applicable destination objects of the selected type
	DestinationFilter *map[string]interface{} `json:"destination_filter"`

	// DestinationHidden Hide this relationship on the destination object.
	DestinationHidden *bool `json:"destination_hidden,omitempty"`

	// DestinationLabel Label for related source objects, as displayed on the destination object.
	DestinationLabel *string `json:"destination_label,omitempty"`
	DestinationType  string  `json:"destination_type"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Name of the relationship as displayed to users
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`

	// RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
	RequiredOn *Relationship_RequiredOn `json:"required_on,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// SourceFilter Filterset filter matching the applicable source objects of the selected type
	SourceFilter *map[string]interface{} `json:"source_filter"`

	// SourceHidden Hide this relationship on the source object.
	SourceHidden *bool `json:"source_hidden,omitempty"`

	// SourceLabel Label for related destination objects, as displayed on the source object.
	SourceLabel *string `json:"source_label,omitempty"`
	SourceType  string  `json:"source_type"`

	// Type Cardinality of this relationship
	Type *RelationshipTypeChoices `json:"type,omitempty"`
	Url  *string                  `json:"url,omitempty"`
}

// Relationship_RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
type Relationship_RequiredOn struct {
	union json.RawMessage
}

// RelationshipAssociation Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type RelationshipAssociation struct {
	DestinationId   openapi_types.UUID `json:"destination_id"`
	DestinationType string             `json:"destination_type"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// Relationship Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Relationship NestedRelationship `json:"relationship"`
	SourceId     openapi_types.UUID `json:"source_id"`
	SourceType   string             `json:"source_type"`
	Url          *string            `json:"url,omitempty"`
}

// RelationshipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type RelationshipRequest struct {
	Description *string `json:"description,omitempty"`

	// DestinationFilter Filterset filter matching the applicable destination objects of the selected type
	DestinationFilter *map[string]interface{} `json:"destination_filter"`

	// DestinationHidden Hide this relationship on the destination object.
	DestinationHidden *bool `json:"destination_hidden,omitempty"`

	// DestinationLabel Label for related source objects, as displayed on the destination object.
	DestinationLabel *string `json:"destination_label,omitempty"`
	DestinationType  string  `json:"destination_type"`

	// Name Name of the relationship as displayed to users
	Name string `json:"name"`

	// RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
	RequiredOn *RelationshipRequest_RequiredOn `json:"required_on,omitempty"`

	// Slug Internal relationship name. Please use underscores rather than dashes in this slug.
	Slug *string `json:"slug,omitempty"`

	// SourceFilter Filterset filter matching the applicable source objects of the selected type
	SourceFilter *map[string]interface{} `json:"source_filter"`

	// SourceHidden Hide this relationship on the source object.
	SourceHidden *bool `json:"source_hidden,omitempty"`

	// SourceLabel Label for related destination objects, as displayed on the source object.
	SourceLabel *string `json:"source_label,omitempty"`
	SourceType  string  `json:"source_type"`

	// Type Cardinality of this relationship
	Type *RelationshipTypeChoices `json:"type,omitempty"`
}

// RelationshipRequest_RequiredOn Objects on the specified side MUST implement this relationship. Not permitted for symmetric relationships.
type RelationshipRequest_RequiredOn struct {
	union json.RawMessage
}

// RelationshipTypeChoices defines model for RelationshipTypeChoices.
type RelationshipTypeChoices string

// RequiredOnEnum defines model for RequiredOnEnum.
type RequiredOnEnum string

// Role Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Role struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	PrefixCount *int                `json:"prefix_count,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
	VlanCount   *int                `json:"vlan_count,omitempty"`
	Weight      *int                `json:"weight,omitempty"`
}

// RoleEnum defines model for RoleEnum.
type RoleEnum string

// RoleRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RoleRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]RoleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                        `json:"label,omitempty"`
			ObjectType *string                                        `json:"object_type,omitempty"`
			Objects    *[]RoleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                          `json:"label,omitempty"`
			ObjectType *string                                          `json:"object_type,omitempty"`
			Objects    *[]RoleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug   *string `json:"slug,omitempty"`
	Weight *int    `json:"weight,omitempty"`
}

// RoleRequest_Relationships_Destination_Objects_Item defines model for RoleRequest.relationships.destination.objects.Item.
type RoleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RoleRequest_Relationships_Peer_Objects_Item defines model for RoleRequest.relationships.peer.objects.Item.
type RoleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RoleRequest_Relationships_Source_Objects_Item defines model for RoleRequest.relationships.source.objects.Item.
type RoleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// RouteTarget Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type RouteTarget struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Route target value (formatted in accordance with RFC 4360)
	Name     string                `json:"name"`
	NotesUrl *string               `json:"notes_url,omitempty"`
	Tags     *[]TagSerializerField `json:"tags,omitempty"`
	Tenant   *NestedTenant         `json:"tenant"`
	Url      *string               `json:"url,omitempty"`
}

// ScheduledJob This base serializer implements common fields and logic for all ModelSerializers.
//
// Namely, it:
//
// - defines the `display` field which exposes a human friendly value for the given object.
// - ensures that `id` field is always present on the serializer as well
// - ensures that `created` and `last_updated` fields are always present if applicable to this model and serializer.
type ScheduledJob struct {
	ApprovalRequired *bool `json:"approval_required,omitempty"`

	// ApprovedAt Datetime that the schedule was approved
	ApprovedAt     *time.Time  `json:"approved_at"`
	ApprovedByUser *NestedUser `json:"approved_by_user,omitempty"`

	// Crontab Cronjob syntax string for custom scheduling
	Crontab *string `json:"crontab,omitempty"`

	// DateChanged Datetime that this scheduled job was last modified
	DateChanged *time.Time `json:"date_changed,omitempty"`

	// Description Detailed description about the details of this scheduled job
	Description *string `json:"description,omitempty"`

	// Display Human friendly display value
	Display  *string                         `json:"display,omitempty"`
	Id       *openapi_types.UUID             `json:"id,omitempty"`
	Interval JobExecutionTypeIntervalChoices `json:"interval"`

	// JobClass Name of the fully qualified Nautobot Job class path
	JobClass string     `json:"job_class"`
	JobModel *NestedJob `json:"job_model,omitempty"`

	// LastRunAt Datetime that the schedule last triggered the task to run. Reset to None if enabled is set to False.
	LastRunAt *time.Time `json:"last_run_at"`

	// Name Short Description For This Task
	Name string `json:"name"`

	// Queue Queue defined in CELERY_TASK_QUEUES. Leave None for default queuing.
	Queue *string `json:"queue"`

	// Task The name of the Celery task that should be run. (Example: "proj.tasks.import_contacts")
	Task string `json:"task"`

	// TotalRunCount Running count of how many times the schedule has triggered the task
	TotalRunCount *int        `json:"total_run_count,omitempty"`
	Url           *string     `json:"url,omitempty"`
	User          *NestedUser `json:"user,omitempty"`
}

// Secret Serializer for `Secret` objects.
type Secret struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string                 `json:"display,omitempty"`
	Id          *openapi_types.UUID     `json:"id,omitempty"`
	LastUpdated *time.Time              `json:"last_updated"`
	Name        string                  `json:"name"`
	NotesUrl    *string                 `json:"notes_url,omitempty"`
	Parameters  *map[string]interface{} `json:"parameters,omitempty"`
	Provider    string                  `json:"provider"`
	Slug        *string                 `json:"slug,omitempty"`
	Tags        *[]TagSerializerField   `json:"tags,omitempty"`
	Url         *string                 `json:"url,omitempty"`
}

// SecretRequest Serializer for `Secret` objects.
type SecretRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Parameters    *map[string]interface{} `json:"parameters,omitempty"`
	Provider      string                  `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]SecretRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                          `json:"label,omitempty"`
			ObjectType *string                                          `json:"object_type,omitempty"`
			Objects    *[]SecretRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                            `json:"label,omitempty"`
			ObjectType *string                                            `json:"object_type,omitempty"`
			Objects    *[]SecretRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// SecretRequest_Relationships_Destination_Objects_Item defines model for SecretRequest.relationships.destination.objects.Item.
type SecretRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SecretRequest_Relationships_Peer_Objects_Item defines model for SecretRequest.relationships.peer.objects.Item.
type SecretRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SecretRequest_Relationships_Source_Objects_Item defines model for SecretRequest.relationships.source.objects.Item.
type SecretRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SecretTypeEnum defines model for SecretTypeEnum.
type SecretTypeEnum string

// SecretsGroup Serializer for `SecretsGroup` objects.
type SecretsGroup struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string                          `json:"display,omitempty"`
	Id          *openapi_types.UUID              `json:"id,omitempty"`
	LastUpdated *time.Time                       `json:"last_updated"`
	Name        string                           `json:"name"`
	NotesUrl    *string                          `json:"notes_url,omitempty"`
	Secrets     *[]NestedSecretsGroupAssociation `json:"secrets,omitempty"`
	Slug        *string                          `json:"slug,omitempty"`
	Url         *string                          `json:"url,omitempty"`
}

// SecretsGroupAssociation Serializer for `SecretsGroupAssociation` objects.
type SecretsGroupAssociation struct {
	AccessType AccessTypeEnum `json:"access_type"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group NestedSecretsGroup  `json:"group"`
	Id    *openapi_types.UUID `json:"id,omitempty"`

	// Secret Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Secret     NestedSecret   `json:"secret"`
	SecretType SecretTypeEnum `json:"secret_type"`
	Url        *string        `json:"url,omitempty"`
}

// SecretsGroupRequest Serializer for `SecretsGroup` objects.
type SecretsGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]SecretsGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]SecretsGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]SecretsGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// SecretsGroupRequest_Relationships_Destination_Objects_Item defines model for SecretsGroupRequest.relationships.destination.objects.Item.
type SecretsGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SecretsGroupRequest_Relationships_Peer_Objects_Item defines model for SecretsGroupRequest.relationships.peer.objects.Item.
type SecretsGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SecretsGroupRequest_Relationships_Source_Objects_Item defines model for SecretsGroupRequest.relationships.source.objects.Item.
type SecretsGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Service Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Service struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       *NestedDevice           `json:"device"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Ipaddresses *[]struct {
		Address string `json:"address"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Family  *int                `json:"family,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Url     *string             `json:"url,omitempty"`
	} `json:"ipaddresses,omitempty"`
	LastUpdated *time.Time `json:"last_updated"`
	Name        string     `json:"name"`
	NotesUrl    *string    `json:"notes_url,omitempty"`
	Ports       []int      `json:"ports"`
	Protocol    *struct {
		Label *ServiceProtocolLabel `json:"label,omitempty"`
		Value *ServiceProtocolValue `json:"value,omitempty"`
	} `json:"protocol,omitempty"`
	Tags           *[]TagSerializerField `json:"tags,omitempty"`
	Url            *string               `json:"url,omitempty"`
	VirtualMachine *NestedVirtualMachine `json:"virtual_machine"`
}

// ServiceProtocolLabel defines model for Service.Protocol.Label.
type ServiceProtocolLabel string

// ServiceProtocolValue defines model for Service.Protocol.Value.
type ServiceProtocolValue string

// ServiceObject ServiceObject Serializer.
type ServiceObject struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Id      *openapi_types.UUID `json:"id,omitempty"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol  IpProtocolEnum `json:"ip_protocol"`
	LastUpdated *time.Time     `json:"last_updated"`

	// Name Name of the service (e.g. HTTP)
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`

	// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
	Port   *string `json:"port"`
	Status *struct {
		Label *ServiceObjectStatusLabel `json:"label,omitempty"`
		Value *ServiceObjectStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// ServiceObjectStatusLabel defines model for ServiceObject.Status.Label.
type ServiceObjectStatusLabel string

// ServiceObjectStatusValue defines model for ServiceObject.Status.Value.
type ServiceObjectStatusValue string

// ServiceObjectGroup ServiceObjectGroup Serializer.
type ServiceObjectGroup struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display        *string             `json:"display,omitempty"`
	Id             *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated    *time.Time          `json:"last_updated"`
	Name           string              `json:"name"`
	NotesUrl       *string             `json:"notes_url,omitempty"`
	ServiceObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
		Description     *string                 `json:"description,omitempty"`

		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
		IpProtocol  ServiceObjectGroupServiceObjectsIpProtocol `json:"ip_protocol"`
		LastUpdated *time.Time                                 `json:"last_updated"`

		// Name Name of the service (e.g. HTTP)
		Name     string  `json:"name"`
		NotesUrl *string `json:"notes_url,omitempty"`

		// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
		Port   *string `json:"port"`
		Status *struct {
			Label *ServiceObjectGroupServiceObjectsStatusLabel `json:"label,omitempty"`
			Value *ServiceObjectGroupServiceObjectsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`
	} `json:"service_objects,omitempty"`
	Status *struct {
		Label *ServiceObjectGroupStatusLabel `json:"label,omitempty"`
		Value *ServiceObjectGroupStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// ServiceObjectGroupServiceObjectsIpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
type ServiceObjectGroupServiceObjectsIpProtocol string

// ServiceObjectGroupServiceObjectsStatusLabel defines model for ServiceObjectGroup.ServiceObjects.Status.Label.
type ServiceObjectGroupServiceObjectsStatusLabel string

// ServiceObjectGroupServiceObjectsStatusValue defines model for ServiceObjectGroup.ServiceObjects.Status.Value.
type ServiceObjectGroupServiceObjectsStatusValue string

// ServiceObjectGroupStatusLabel defines model for ServiceObjectGroup.Status.Label.
type ServiceObjectGroupStatusLabel string

// ServiceObjectGroupStatusValue defines model for ServiceObjectGroup.Status.Value.
type ServiceObjectGroupStatusValue string

// ServiceObjectRequest ServiceObject Serializer.
type ServiceObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol IpProtocolEnum `json:"ip_protocol"`

	// Name Name of the service (e.g. HTTP)
	Name string `json:"name"`

	// Port The port or port range to tie to a service (e.g. HTTP would be port 80)
	Port          *string `json:"port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]ServiceObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]ServiceObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]ServiceObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ServiceObjectRequest_Relationships_Destination_Objects_Item defines model for ServiceObjectRequest.relationships.destination.objects.Item.
type ServiceObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ServiceObjectRequest_Relationships_Peer_Objects_Item defines model for ServiceObjectRequest.relationships.peer.objects.Item.
type ServiceObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ServiceObjectRequest_Relationships_Source_Objects_Item defines model for ServiceObjectRequest.relationships.source.objects.Item.
type ServiceObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SeverityEnum defines model for SeverityEnum.
type SeverityEnum string

// Site Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Site struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	CircuitCount *int                    `json:"circuit_count,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	ContactEmail *openapi_types.Email    `json:"contact_email,omitempty"`
	ContactName  *string                 `json:"contact_name,omitempty"`
	ContactPhone *string                 `json:"contact_phone,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Facility Local facility ID or description
	Facility    *string             `json:"facility,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Latitude GPS coordinate (latitude)
	Latitude *string `json:"latitude"`

	// Longitude GPS coordinate (longitude)
	Longitude       *string       `json:"longitude"`
	Name            string        `json:"name"`
	NotesUrl        *string       `json:"notes_url,omitempty"`
	PhysicalAddress *string       `json:"physical_address,omitempty"`
	PrefixCount     *int          `json:"prefix_count,omitempty"`
	RackCount       *int          `json:"rack_count,omitempty"`
	Region          *NestedRegion `json:"region"`
	ShippingAddress *string       `json:"shipping_address,omitempty"`
	Slug            *string       `json:"slug,omitempty"`
	Status          struct {
		Label *SiteStatusLabel `json:"label,omitempty"`
		Value *SiteStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags                *[]TagSerializerField `json:"tags,omitempty"`
	Tenant              *NestedTenant         `json:"tenant"`
	TimeZone            *string               `json:"time_zone"`
	Url                 *string               `json:"url,omitempty"`
	VirtualmachineCount *int                  `json:"virtualmachine_count,omitempty"`
	VlanCount           *int                  `json:"vlan_count,omitempty"`
}

// SiteStatusLabel defines model for Site.Status.Label.
type SiteStatusLabel string

// SiteStatusValue defines model for Site.Status.Value.
type SiteStatusValue string

// SoftwareImageLCM REST API serializer for SoftwareImageLCM records.
type SoftwareImageLCM struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	DefaultImage *bool                   `json:"default_image,omitempty"`
	DeviceTypes  *[]openapi_types.UUID   `json:"device_types,omitempty"`

	// Display Human friendly display value
	Display           *string               `json:"display,omitempty"`
	DownloadUrl       *string               `json:"download_url,omitempty"`
	Id                *openapi_types.UUID   `json:"id,omitempty"`
	ImageFileChecksum *string               `json:"image_file_checksum,omitempty"`
	ImageFileName     string                `json:"image_file_name"`
	InventoryItems    *[]openapi_types.UUID `json:"inventory_items,omitempty"`
	LastUpdated       *time.Time            `json:"last_updated"`
	ObjectTags        *[]openapi_types.UUID `json:"object_tags,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software NestedSoftwareLCM     `json:"software"`
	Tags     *[]TagSerializerField `json:"tags,omitempty"`
	Url      *string               `json:"url,omitempty"`
}

// SoftwareLCM REST API serializer for SoftwareLCM records.
type SoftwareLCM struct {
	Alias        *string                 `json:"alias"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DevicePlatform Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	DevicePlatform NestedPlatform `json:"device_platform"`

	// Display Human friendly display value
	Display          *string             `json:"display,omitempty"`
	DocumentationUrl *string             `json:"documentation_url,omitempty"`
	EndOfSupport     *openapi_types.Date `json:"end_of_support"`
	Id               *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated      *time.Time          `json:"last_updated"`
	LongTermSupport  *bool               `json:"long_term_support,omitempty"`
	PreRelease       *bool               `json:"pre_release,omitempty"`
	ReleaseDate      *openapi_types.Date `json:"release_date"`
	SoftwareImages   *[]struct {
		DefaultImage *bool                 `json:"default_image,omitempty"`
		DeviceTypes  *[]openapi_types.UUID `json:"device_types,omitempty"`

		// Display Human friendly display value
		Display           *string               `json:"display,omitempty"`
		DownloadUrl       *string               `json:"download_url,omitempty"`
		Id                *openapi_types.UUID   `json:"id,omitempty"`
		ImageFileChecksum *string               `json:"image_file_checksum,omitempty"`
		ImageFileName     string                `json:"image_file_name"`
		InventoryItems    *[]openapi_types.UUID `json:"inventory_items,omitempty"`
		ObjectTags        *[]openapi_types.UUID `json:"object_tags,omitempty"`
		Url               *string               `json:"url,omitempty"`
	} `json:"software_images,omitempty"`
	Tags    *[]TagSerializerField `json:"tags,omitempty"`
	Url     *string               `json:"url,omitempty"`
	Version string                `json:"version"`
}

// Status Serializer for `Status` objects.
type Status struct {
	Color        *string                 `json:"color,omitempty"`
	ContentTypes []string                `json:"content_types"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// Status2a0Enum defines model for Status2a0Enum.
type Status2a0Enum string

// Status4f5Enum defines model for Status4f5Enum.
type Status4f5Enum = string

// Status8f7Enum defines model for Status8f7Enum.
type Status8f7Enum string

// StatusD95Enum defines model for StatusD95Enum.
type StatusD95Enum string

// StatusRequest Serializer for `Status` objects.
type StatusRequest struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  []string                `json:"content_types"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]StatusRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                          `json:"label,omitempty"`
			ObjectType *string                                          `json:"object_type,omitempty"`
			Objects    *[]StatusRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                            `json:"label,omitempty"`
			ObjectType *string                                            `json:"object_type,omitempty"`
			Objects    *[]StatusRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// StatusRequest_Relationships_Destination_Objects_Item defines model for StatusRequest.relationships.destination.objects.Item.
type StatusRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// StatusRequest_Relationships_Peer_Objects_Item defines model for StatusRequest.relationships.peer.objects.Item.
type StatusRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// StatusRequest_Relationships_Source_Objects_Item defines model for StatusRequest.relationships.source.objects.Item.
type StatusRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// SubdeviceRoleEnum defines model for SubdeviceRoleEnum.
type SubdeviceRoleEnum string

// SupplyEnum defines model for SupplyEnum.
type SupplyEnum string

// TagSerializerField NestedSerializer field for `Tag` object fields.
type TagSerializerField struct {
	Color   *string             `json:"color,omitempty"`
	Created *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	Slug        string              `json:"slug"`
	Url         *string             `json:"url,omitempty"`
}

// TagSerializerFieldRequest NestedSerializer field for `Tag` object fields.
type TagSerializerFieldRequest struct {
	Color *string `json:"color,omitempty"`
	Name  *string `json:"name,omitempty"`
	Slug  *string `json:"slug,omitempty"`
}

// TagSerializerVersion13 Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type TagSerializerVersion13 struct {
	Color        *string                 `json:"color,omitempty"`
	ContentTypes []string                `json:"content_types"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Slug        string              `json:"slug"`
	TaggedItems *int                `json:"tagged_items,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// TagSerializerVersion13Request Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type TagSerializerVersion13Request struct {
	Color         *string                 `json:"color,omitempty"`
	ContentTypes  []string                `json:"content_types"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]TagSerializerVersion13Request_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]TagSerializerVersion13Request_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]TagSerializerVersion13Request_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug string `json:"slug"`
}

// TagSerializerVersion13Request_Relationships_Destination_Objects_Item defines model for TagSerializerVersion13Request.relationships.destination.objects.Item.
type TagSerializerVersion13Request_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// TagSerializerVersion13Request_Relationships_Peer_Objects_Item defines model for TagSerializerVersion13Request.relationships.peer.objects.Item.
type TagSerializerVersion13Request_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// TagSerializerVersion13Request_Relationships_Source_Objects_Item defines model for TagSerializerVersion13Request.relationships.source.objects.Item.
type TagSerializerVersion13Request_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Tenant Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type Tenant struct {
	CircuitCount *int                    `json:"circuit_count,omitempty"`
	ClusterCount *int                    `json:"cluster_count,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceCount  *int                    `json:"device_count,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// Group Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Group               *NestedTenantGroup    `json:"group,omitempty"`
	Id                  *openapi_types.UUID   `json:"id,omitempty"`
	IpaddressCount      *int                  `json:"ipaddress_count,omitempty"`
	LastUpdated         *time.Time            `json:"last_updated"`
	Name                string                `json:"name"`
	NotesUrl            *string               `json:"notes_url,omitempty"`
	PrefixCount         *int                  `json:"prefix_count,omitempty"`
	RackCount           *int                  `json:"rack_count,omitempty"`
	SiteCount           *int                  `json:"site_count,omitempty"`
	Slug                *string               `json:"slug,omitempty"`
	Tags                *[]TagSerializerField `json:"tags,omitempty"`
	Url                 *string               `json:"url,omitempty"`
	VirtualmachineCount *int                  `json:"virtualmachine_count,omitempty"`
	VlanCount           *int                  `json:"vlan_count,omitempty"`
	VrfCount            *int                  `json:"vrf_count,omitempty"`
}

// TenantGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type TenantGroup struct {
	Depth        *int                    `json:"_depth,omitempty"`
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Parent      *NestedTenantGroup  `json:"parent"`
	Slug        *string             `json:"slug,omitempty"`
	TenantCount *int                `json:"tenant_count,omitempty"`
	Url         *string             `json:"url,omitempty"`
}

// TermSideEnum defines model for TermSideEnum.
type TermSideEnum string

// Token Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type Token struct {
	Created     *time.Time `json:"created,omitempty"`
	Description *string    `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string             `json:"display,omitempty"`
	Expires *time.Time          `json:"expires"`
	Id      *openapi_types.UUID `json:"id,omitempty"`
	Key     *string             `json:"key,omitempty"`
	Url     *string             `json:"url,omitempty"`

	// WriteEnabled Permit create/update/delete operations using this key
	WriteEnabled *bool `json:"write_enabled,omitempty"`
}

// TokenRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type TokenRequest struct {
	Description *string    `json:"description,omitempty"`
	Expires     *time.Time `json:"expires"`
	Key         *string    `json:"key,omitempty"`

	// WriteEnabled Permit create/update/delete operations using this key
	WriteEnabled *bool `json:"write_enabled,omitempty"`
}

// User Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type User struct {
	DateJoined *time.Time `json:"date_joined,omitempty"`

	// Display Human friendly display value
	Display   *string              `json:"display,omitempty"`
	Email     *openapi_types.Email `json:"email,omitempty"`
	FirstName *string              `json:"first_name,omitempty"`
	Groups    *[]struct {
		// Display Human friendly display value
		Display *string `json:"display,omitempty"`
		Id      *int    `json:"id,omitempty"`
		Name    string  `json:"name"`
		Url     *string `json:"url,omitempty"`
	} `json:"groups,omitempty"`
	Id *openapi_types.UUID `json:"id,omitempty"`

	// IsActive Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
	IsActive *bool `json:"is_active,omitempty"`

	// IsStaff Designates whether the user can log into this admin site.
	IsStaff  *bool   `json:"is_staff,omitempty"`
	LastName *string `json:"last_name,omitempty"`
	Url      *string `json:"url,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username string `json:"username"`
}

// UserObject UserObject Serializer.
type UserObject struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
	Name     *string `json:"name,omitempty"`
	NotesUrl *string `json:"notes_url,omitempty"`
	Status   *struct {
		Label *UserObjectStatusLabel `json:"label,omitempty"`
		Value *UserObjectStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`

	// Username Signifies the username in identify provider (e.g. john.smith)
	Username string `json:"username"`
}

// UserObjectStatusLabel defines model for UserObject.Status.Label.
type UserObjectStatusLabel string

// UserObjectStatusValue defines model for UserObject.Status.Value.
type UserObjectStatusValue string

// UserObjectGroup UserObjectGroup Serializer.
type UserObjectGroup struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Status      *struct {
		Label *UserObjectGroupStatusLabel `json:"label,omitempty"`
		Value *UserObjectGroupStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
	UserObjects *[]struct {
		CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
		Created         *openapi_types.Date     `json:"created"`
		CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

		// Display Human friendly display value
		Display     *string             `json:"display,omitempty"`
		Id          *openapi_types.UUID `json:"id,omitempty"`
		LastUpdated *time.Time          `json:"last_updated"`

		// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
		Name     *string `json:"name,omitempty"`
		NotesUrl *string `json:"notes_url,omitempty"`
		Status   *struct {
			Label *UserObjectGroupUserObjectsStatusLabel `json:"label,omitempty"`
			Value *UserObjectGroupUserObjectsStatusValue `json:"value,omitempty"`
		} `json:"status,omitempty"`
		Tags *[]TagSerializerField `json:"tags,omitempty"`
		Url  *string               `json:"url,omitempty"`

		// Username Signifies the username in identify provider (e.g. john.smith)
		Username string `json:"username"`
	} `json:"user_objects,omitempty"`
}

// UserObjectGroupStatusLabel defines model for UserObjectGroup.Status.Label.
type UserObjectGroupStatusLabel string

// UserObjectGroupStatusValue defines model for UserObjectGroup.Status.Value.
type UserObjectGroupStatusValue string

// UserObjectGroupUserObjectsStatusLabel defines model for UserObjectGroup.UserObjects.Status.Label.
type UserObjectGroupUserObjectsStatusLabel string

// UserObjectGroupUserObjectsStatusValue defines model for UserObjectGroup.UserObjects.Status.Value.
type UserObjectGroupUserObjectsStatusValue string

// UserObjectRequest UserObject Serializer.
type UserObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`

	// Name Signifies the name of the user, commonly first & last name (e.g. John Smith)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]UserObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                              `json:"label,omitempty"`
			ObjectType *string                                              `json:"object_type,omitempty"`
			Objects    *[]UserObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]UserObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Username Signifies the username in identify provider (e.g. john.smith)
	Username string `json:"username"`
}

// UserObjectRequest_Relationships_Destination_Objects_Item defines model for UserObjectRequest.relationships.destination.objects.Item.
type UserObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// UserObjectRequest_Relationships_Peer_Objects_Item defines model for UserObjectRequest.relationships.peer.objects.Item.
type UserObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// UserObjectRequest_Relationships_Source_Objects_Item defines model for UserObjectRequest.relationships.source.objects.Item.
type UserObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// VLAN Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VLAN struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Group       *NestedVLANGroup    `json:"group"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Location    *NestedLocation     `json:"location"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	PrefixCount *int                `json:"prefix_count,omitempty"`
	Role        *NestedRole         `json:"role"`
	Site        *NestedSite         `json:"site"`
	Status      struct {
		Label *VLANStatusLabel `json:"label,omitempty"`
		Value *VLANStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
	Vid    int                   `json:"vid"`
}

// VLANStatusLabel defines model for VLAN.Status.Label.
type VLANStatusLabel string

// VLANStatusValue defines model for VLAN.Status.Value.
type VLANStatusValue string

// VLANGroup Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VLANGroup struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`
	Location    *NestedLocation     `json:"location"`
	Name        string              `json:"name"`
	NotesUrl    *string             `json:"notes_url,omitempty"`
	Site        *NestedSite         `json:"site"`
	Slug        *string             `json:"slug,omitempty"`
	Url         *string             `json:"url,omitempty"`
	VlanCount   *int                `json:"vlan_count,omitempty"`
}

// VLANStatusChoices defines model for VLANStatusChoices.
type VLANStatusChoices string

// VMInterfaceSerializerVersion12 Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VMInterfaceSerializerVersion12 struct {
	Bridge       *NestedVMInterface      `json:"bridge"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display    *string             `json:"display,omitempty"`
	Enabled    *bool               `json:"enabled,omitempty"`
	Id         *openapi_types.UUID `json:"id,omitempty"`
	MacAddress *string             `json:"mac_address"`
	Mode       *struct {
		Label *VMInterfaceSerializerVersion12ModeLabel `json:"label,omitempty"`
		Value *VMInterfaceSerializerVersion12ModeValue `json:"value,omitempty"`
	} `json:"mode,omitempty"`
	Mtu             *int               `json:"mtu"`
	Name            string             `json:"name"`
	NotesUrl        *string            `json:"notes_url,omitempty"`
	ParentInterface *NestedVMInterface `json:"parent_interface"`
	TaggedVlans     *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`
		Name    string              `json:"name"`
		Url     *string             `json:"url,omitempty"`
		Vid     int                 `json:"vid"`
	} `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerField `json:"tags,omitempty"`
	UntaggedVlan *NestedVLAN           `json:"untagged_vlan"`
	Url          *string               `json:"url,omitempty"`

	// VirtualMachine Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	VirtualMachine NestedVirtualMachine `json:"virtual_machine"`
}

// VMInterfaceSerializerVersion12ModeLabel defines model for VMInterfaceSerializerVersion12.Mode.Label.
type VMInterfaceSerializerVersion12ModeLabel string

// VMInterfaceSerializerVersion12ModeValue defines model for VMInterfaceSerializerVersion12.Mode.Value.
type VMInterfaceSerializerVersion12ModeValue string

// VRF Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VRF struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// EnforceUnique Prevent duplicate prefixes/IP addresses within this VRF
	EnforceUnique *bool `json:"enforce_unique,omitempty"`
	ExportTargets *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// Name Route target value (formatted in accordance with RFC 4360)
		Name string  `json:"name"`
		Url  *string `json:"url,omitempty"`
	} `json:"export_targets,omitempty"`
	Id            *openapi_types.UUID `json:"id,omitempty"`
	ImportTargets *[]struct {
		// Display Human friendly display value
		Display *string             `json:"display,omitempty"`
		Id      *openapi_types.UUID `json:"id,omitempty"`

		// Name Route target value (formatted in accordance with RFC 4360)
		Name string  `json:"name"`
		Url  *string `json:"url,omitempty"`
	} `json:"import_targets,omitempty"`
	IpaddressCount *int       `json:"ipaddress_count,omitempty"`
	LastUpdated    *time.Time `json:"last_updated"`
	Name           string     `json:"name"`
	NotesUrl       *string    `json:"notes_url,omitempty"`
	PrefixCount    *int       `json:"prefix_count,omitempty"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd     *string               `json:"rd"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
}

// ValidatedSoftwareLCM REST API serializer for ValidatedSoftwareLCM records.
type ValidatedSoftwareLCM struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRoles  *[]openapi_types.UUID   `json:"device_roles,omitempty"`
	DeviceTypes  *[]openapi_types.UUID   `json:"device_types,omitempty"`
	Devices      *[]openapi_types.UUID   `json:"devices,omitempty"`

	// Display Human friendly display value
	Display        *string               `json:"display,omitempty"`
	End            *openapi_types.Date   `json:"end"`
	Id             *openapi_types.UUID   `json:"id,omitempty"`
	InventoryItems *[]openapi_types.UUID `json:"inventory_items,omitempty"`
	LastUpdated    *time.Time            `json:"last_updated"`
	ObjectTags     *[]openapi_types.UUID `json:"object_tags,omitempty"`
	Preferred      *bool                 `json:"preferred,omitempty"`

	// Software Nested/brief serializer for SoftwareLCM.
	Software NestedSoftwareLCM     `json:"software"`
	Start    openapi_types.Date    `json:"start"`
	Tags     *[]TagSerializerField `json:"tags,omitempty"`
	Url      *string               `json:"url,omitempty"`
	Valid    *string               `json:"valid,omitempty"`
}

// VirtualChassis Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VirtualChassis struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// Display Human friendly display value
	Display     *string               `json:"display,omitempty"`
	Domain      *string               `json:"domain,omitempty"`
	Id          *openapi_types.UUID   `json:"id,omitempty"`
	LastUpdated *time.Time            `json:"last_updated"`
	Master      *NestedDevice         `json:"master"`
	MemberCount *int                  `json:"member_count,omitempty"`
	Name        string                `json:"name"`
	NotesUrl    *string               `json:"notes_url,omitempty"`
	Tags        *[]TagSerializerField `json:"tags,omitempty"`
	Url         *string               `json:"url,omitempty"`
}

// VirtualMachineStatusChoices defines model for VirtualMachineStatusChoices.
type VirtualMachineStatusChoices string

// VirtualMachineWithConfigContext Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type VirtualMachineWithConfigContext struct {
	// Cluster Returns a nested representation of an object on read, but accepts either the nested representation or the
	// primary key value on write operations.
	Cluster       NestedCluster           `json:"cluster"`
	Comments      *string                 `json:"comments,omitempty"`
	ConfigContext *map[string]interface{} `json:"config_context,omitempty"`
	Created       *openapi_types.Date     `json:"created"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Disk          *int                    `json:"disk"`

	// Display Human friendly display value
	Display            *string                    `json:"display,omitempty"`
	Id                 *openapi_types.UUID        `json:"id,omitempty"`
	LastUpdated        *time.Time                 `json:"last_updated"`
	LocalContextData   *map[string]interface{}    `json:"local_context_data"`
	LocalContextSchema *NestedConfigContextSchema `json:"local_context_schema"`
	Location           *NestedLocation            `json:"location"`
	Memory             *int                       `json:"memory"`
	Name               string                     `json:"name"`
	NotesUrl           *string                    `json:"notes_url,omitempty"`
	Platform           *NestedPlatform            `json:"platform"`
	PrimaryIp          *NestedIPAddress           `json:"primary_ip,omitempty"`
	PrimaryIp4         *NestedIPAddress           `json:"primary_ip4"`
	PrimaryIp6         *NestedIPAddress           `json:"primary_ip6"`
	Role               *NestedDeviceRole          `json:"role"`
	Site               *NestedSite                `json:"site,omitempty"`
	Status             struct {
		Label *VirtualMachineWithConfigContextStatusLabel `json:"label,omitempty"`
		Value *VirtualMachineWithConfigContextStatusValue `json:"value,omitempty"`
	} `json:"status"`
	Tags   *[]TagSerializerField `json:"tags,omitempty"`
	Tenant *NestedTenant         `json:"tenant"`
	Url    *string               `json:"url,omitempty"`
	Vcpus  *int                  `json:"vcpus"`
}

// VirtualMachineWithConfigContextStatusLabel defines model for VirtualMachineWithConfigContext.Status.Label.
type VirtualMachineWithConfigContextStatusLabel string

// VirtualMachineWithConfigContextStatusValue defines model for VirtualMachineWithConfigContext.Status.Value.
type VirtualMachineWithConfigContextStatusValue string

// VulnerabilityLCM REST API serializer for VulnerabilityLCM records.
type VulnerabilityLCM struct {
	Created      *openapi_types.Date     `json:"created"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Cve          *NestedCVELCM           `json:"cve,omitempty"`
	Device       *NestedDevice           `json:"device,omitempty"`

	// Display Human friendly display value
	Display       *string              `json:"display,omitempty"`
	Id            *openapi_types.UUID  `json:"id,omitempty"`
	InventoryItem *NestedInventoryItem `json:"inventory_item,omitempty"`
	LastUpdated   *time.Time           `json:"last_updated"`
	Software      *NestedSoftwareLCM   `json:"software,omitempty"`
	Status        struct {
		Label *string `json:"label,omitempty"`
		Value *string `json:"value,omitempty"`
	} `json:"status"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
}

// VulnerabilityLCMRequest REST API serializer for VulnerabilityLCM records.
type VulnerabilityLCMRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]VulnerabilityLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]VulnerabilityLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]VulnerabilityLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status Status4f5Enum                `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// VulnerabilityLCMRequest_Relationships_Destination_Objects_Item defines model for VulnerabilityLCMRequest.relationships.destination.objects.Item.
type VulnerabilityLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// VulnerabilityLCMRequest_Relationships_Peer_Objects_Item defines model for VulnerabilityLCMRequest.relationships.peer.objects.Item.
type VulnerabilityLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// VulnerabilityLCMRequest_Relationships_Source_Objects_Item defines model for VulnerabilityLCMRequest.relationships.source.objects.Item.
type VulnerabilityLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Webhook Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type Webhook struct {
	// AdditionalHeaders User-supplied HTTP headers to be sent with the request in addition to the HTTP content type. Headers should be defined in the format <code>Name: Value</code>. Jinja2 template processing is support with the same context as the request body (below).
	AdditionalHeaders *string `json:"additional_headers,omitempty"`

	// BodyTemplate Jinja2 template for a custom request body. If blank, a JSON object representing the change will be included. Available context data includes: <code>event</code>, <code>model</code>, <code>timestamp</code>, <code>username</code>, <code>request_id</code>, and <code>data</code>.
	BodyTemplate *string `json:"body_template,omitempty"`

	// CaFilePath The specific CA certificate file to use for SSL verification. Leave blank to use the system defaults.
	CaFilePath   *string             `json:"ca_file_path"`
	ContentTypes []string            `json:"content_types"`
	Created      *openapi_types.Date `json:"created"`

	// Display Human friendly display value
	Display *string `json:"display,omitempty"`

	// HttpContentType The complete list of official content types is available <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.
	HttpContentType *string             `json:"http_content_type,omitempty"`
	HttpMethod      *HttpMethodEnum     `json:"http_method,omitempty"`
	Id              *openapi_types.UUID `json:"id,omitempty"`
	LastUpdated     *time.Time          `json:"last_updated"`
	Name            string              `json:"name"`
	NotesUrl        *string             `json:"notes_url,omitempty"`

	// PayloadUrl A POST will be sent to this URL when the webhook is called.
	PayloadUrl string `json:"payload_url"`

	// Secret When provided, the request will include a 'X-Hook-Signature' header containing a HMAC hex digest of the payload body using the secret as the key. The secret is not transmitted in the request.
	Secret *string `json:"secret,omitempty"`

	// SslVerification Enable SSL certificate verification. Disable with caution!
	SslVerification *bool `json:"ssl_verification,omitempty"`

	// TypeCreate Call this webhook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this webhook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this webhook when a matching object is updated.
	TypeUpdate *bool   `json:"type_update,omitempty"`
	Url        *string `json:"url,omitempty"`
}

// WebhookRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WebhookRequest struct {
	// AdditionalHeaders User-supplied HTTP headers to be sent with the request in addition to the HTTP content type. Headers should be defined in the format <code>Name: Value</code>. Jinja2 template processing is support with the same context as the request body (below).
	AdditionalHeaders *string `json:"additional_headers,omitempty"`

	// BodyTemplate Jinja2 template for a custom request body. If blank, a JSON object representing the change will be included. Available context data includes: <code>event</code>, <code>model</code>, <code>timestamp</code>, <code>username</code>, <code>request_id</code>, and <code>data</code>.
	BodyTemplate *string `json:"body_template,omitempty"`

	// CaFilePath The specific CA certificate file to use for SSL verification. Leave blank to use the system defaults.
	CaFilePath   *string  `json:"ca_file_path"`
	ContentTypes []string `json:"content_types"`

	// HttpContentType The complete list of official content types is available <a href="https://www.iana.org/assignments/media-types/media-types.xhtml">here</a>.
	HttpContentType *string         `json:"http_content_type,omitempty"`
	HttpMethod      *HttpMethodEnum `json:"http_method,omitempty"`
	Name            string          `json:"name"`

	// PayloadUrl A POST will be sent to this URL when the webhook is called.
	PayloadUrl string `json:"payload_url"`

	// Secret When provided, the request will include a 'X-Hook-Signature' header containing a HMAC hex digest of the payload body using the secret as the key. The secret is not transmitted in the request.
	Secret *string `json:"secret,omitempty"`

	// SslVerification Enable SSL certificate verification. Disable with caution!
	SslVerification *bool `json:"ssl_verification,omitempty"`

	// TypeCreate Call this webhook when a matching object is created.
	TypeCreate *bool `json:"type_create,omitempty"`

	// TypeDelete Call this webhook when a matching object is deleted.
	TypeDelete *bool `json:"type_delete,omitempty"`

	// TypeUpdate Call this webhook when a matching object is updated.
	TypeUpdate *bool `json:"type_update,omitempty"`
}

// WidthEnum defines model for WidthEnum.
type WidthEnum int

// WritableAddressFamilyRequest REST API serializer for AddressFamily records.
type WritableAddressFamilyRequest struct {
	AfiSafi         AfiSafiEnum             `json:"afi_safi"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	ExportPolicy    *string                 `json:"export_policy,omitempty"`
	ImportPolicy    *string                 `json:"import_policy,omitempty"`
	RoutingInstance openapi_types.UUID      `json:"routing_instance"`
	Vrf             *openapi_types.UUID     `json:"vrf"`
}

// WritableAddressObjectGroupRequest AddressObjectGroup Serializer.
type WritableAddressObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Name Name descriptor for a group address objects.
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item defines model for WritableAddressObjectGroupRequest.relationships.destination.objects.Item.
type WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item defines model for WritableAddressObjectGroupRequest.relationships.peer.objects.Item.
type WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item defines model for WritableAddressObjectGroupRequest.relationships.source.objects.Item.
type WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAddressObjectRequest AddressObject Serializer.
type WritableAddressObjectRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Fqdn            *openapi_types.UUID     `json:"fqdn"`
	IpAddress       *openapi_types.UUID     `json:"ip_address"`
	IpRange         *openapi_types.UUID     `json:"ip_range"`

	// Name Name descriptor for an address object type.
	Name          string              `json:"name"`
	Prefix        *openapi_types.UUID `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableAddressObjectRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableAddressObjectRequest_Relationships_Destination_Objects_Item defines model for WritableAddressObjectRequest.relationships.destination.objects.Item.
type WritableAddressObjectRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAddressObjectRequest_Relationships_Peer_Objects_Item defines model for WritableAddressObjectRequest.relationships.peer.objects.Item.
type WritableAddressObjectRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAddressObjectRequest_Relationships_Source_Objects_Item defines model for WritableAddressObjectRequest.relationships.source.objects.Item.
type WritableAddressObjectRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAggregateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableAggregateRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	DateAdded     *openapi_types.Date     `json:"date_added"`
	Description   *string                 `json:"description,omitempty"`
	Prefix        string                  `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableAggregateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableAggregateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableAggregateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Rir    openapi_types.UUID           `json:"rir"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// WritableAggregateRequest_Relationships_Destination_Objects_Item defines model for WritableAggregateRequest.relationships.destination.objects.Item.
type WritableAggregateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAggregateRequest_Relationships_Peer_Objects_Item defines model for WritableAggregateRequest.relationships.peer.objects.Item.
type WritableAggregateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAggregateRequest_Relationships_Source_Objects_Item defines model for WritableAggregateRequest.relationships.source.objects.Item.
type WritableAggregateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableAutonomousSystemRequest REST API serializer for AutonomousSystem records.
type WritableAutonomousSystemRequest struct {
	// Asn 32-bit autonomous system number
	Asn          int64                        `json:"asn"`
	CustomFields *map[string]interface{}      `json:"custom_fields,omitempty"`
	Description  *string                      `json:"description,omitempty"`
	Provider     *openapi_types.UUID          `json:"provider"`
	Status       Status2a0Enum                `json:"status"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableBGPRoutingInstanceRequest REST API serializer for Peering records.
type WritableBGPRoutingInstanceRequest struct {
	AutonomousSystem openapi_types.UUID      `json:"autonomous_system"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Device           openapi_types.UUID      `json:"device"`
	RouterId         *openapi_types.UUID     `json:"router_id"`
}

// WritableCVELCMRequest REST API serializer for CVELCM records.
type WritableCVELCMRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Cvss          *float64                `json:"cvss"`
	CvssV2        *float64                `json:"cvss_v2"`
	CvssV3        *float64                `json:"cvss_v3"`
	Description   *string                 `json:"description"`
	Fix           *string                 `json:"fix"`
	Link          string                  `json:"link"`
	Name          string                  `json:"name"`
	PublishedDate openapi_types.Date      `json:"published_date"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableCVELCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableCVELCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableCVELCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Severity *SeverityEnum                `json:"severity,omitempty"`
	Status   *Status4f5Enum               `json:"status,omitempty"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableCVELCMRequest_Relationships_Destination_Objects_Item defines model for WritableCVELCMRequest.relationships.destination.objects.Item.
type WritableCVELCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCVELCMRequest_Relationships_Peer_Objects_Item defines model for WritableCVELCMRequest.relationships.peer.objects.Item.
type WritableCVELCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCVELCMRequest_Relationships_Source_Objects_Item defines model for WritableCVELCMRequest.relationships.source.objects.Item.
type WritableCVELCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCableRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableCableRequest struct {
	Color         *string                          `json:"color,omitempty"`
	CustomFields  *map[string]interface{}          `json:"custom_fields,omitempty"`
	Label         *string                          `json:"label,omitempty"`
	Length        *int                             `json:"length"`
	LengthUnit    *WritableCableRequest_LengthUnit `json:"length_unit,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritableCableRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]WritableCableRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableCableRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status           CableStatusChoices           `json:"status"`
	Tags             *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	TerminationAId   openapi_types.UUID           `json:"termination_a_id"`
	TerminationAType string                       `json:"termination_a_type"`
	TerminationBId   openapi_types.UUID           `json:"termination_b_id"`
	TerminationBType string                       `json:"termination_b_type"`
	Type             *WritableCableRequest_Type   `json:"type,omitempty"`
}

// WritableCableRequest_LengthUnit defines model for WritableCableRequest.LengthUnit.
type WritableCableRequest_LengthUnit struct {
	union json.RawMessage
}

// WritableCableRequest_Relationships_Destination_Objects_Item defines model for WritableCableRequest.relationships.destination.objects.Item.
type WritableCableRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCableRequest_Relationships_Peer_Objects_Item defines model for WritableCableRequest.relationships.peer.objects.Item.
type WritableCableRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCableRequest_Relationships_Source_Objects_Item defines model for WritableCableRequest.relationships.source.objects.Item.
type WritableCableRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCableRequest_Type defines model for WritableCableRequest.Type.
type WritableCableRequest_Type struct {
	union json.RawMessage
}

// WritableCircuitRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableCircuitRequest struct {
	Cid           string                  `json:"cid"`
	Comments      *string                 `json:"comments,omitempty"`
	CommitRate    *int                    `json:"commit_rate"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	InstallDate   *openapi_types.Date     `json:"install_date"`
	Provider      openapi_types.UUID      `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status CircuitStatusChoices         `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Type   openapi_types.UUID           `json:"type"`
}

// WritableCircuitRequest_Relationships_Destination_Objects_Item defines model for WritableCircuitRequest.relationships.destination.objects.Item.
type WritableCircuitRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCircuitRequest_Relationships_Peer_Objects_Item defines model for WritableCircuitRequest.relationships.peer.objects.Item.
type WritableCircuitRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCircuitRequest_Relationships_Source_Objects_Item defines model for WritableCircuitRequest.relationships.source.objects.Item.
type WritableCircuitRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCircuitTerminationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableCircuitTerminationRequest struct {
	Circuit         openapi_types.UUID      `json:"circuit"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Location        *openapi_types.UUID     `json:"location"`
	PortSpeed       *int                    `json:"port_speed"`
	PpInfo          *string                 `json:"pp_info,omitempty"`
	ProviderNetwork *openapi_types.UUID     `json:"provider_network"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableCircuitTerminationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site     *openapi_types.UUID `json:"site"`
	TermSide TermSideEnum        `json:"term_side"`

	// UpstreamSpeed Upstream speed, if different from port speed
	UpstreamSpeed *int    `json:"upstream_speed"`
	XconnectId    *string `json:"xconnect_id,omitempty"`
}

// WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item defines model for WritableCircuitTerminationRequest.relationships.destination.objects.Item.
type WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item defines model for WritableCircuitTerminationRequest.relationships.peer.objects.Item.
type WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCircuitTerminationRequest_Relationships_Source_Objects_Item defines model for WritableCircuitTerminationRequest.relationships.source.objects.Item.
type WritableCircuitTerminationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableClusterRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableClusterRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableClusterRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableClusterRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableClusterRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *openapi_types.UUID          `json:"site"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Type   openapi_types.UUID           `json:"type"`
}

// WritableClusterRequest_Relationships_Destination_Objects_Item defines model for WritableClusterRequest.relationships.destination.objects.Item.
type WritableClusterRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableClusterRequest_Relationships_Peer_Objects_Item defines model for WritableClusterRequest.relationships.peer.objects.Item.
type WritableClusterRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableClusterRequest_Relationships_Source_Objects_Item defines model for WritableClusterRequest.relationships.source.objects.Item.
type WritableClusterRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConfigContextRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableConfigContextRequest struct {
	ClusterGroups    *[]openapi_types.UUID  `json:"cluster_groups,omitempty"`
	Clusters         *[]openapi_types.UUID  `json:"clusters,omitempty"`
	Data             map[string]interface{} `json:"data"`
	Description      *string                `json:"description,omitempty"`
	DeviceTypes      *[]openapi_types.UUID  `json:"device_types,omitempty"`
	IsActive         *bool                  `json:"is_active,omitempty"`
	Locations        *[]openapi_types.UUID  `json:"locations,omitempty"`
	Name             string                 `json:"name"`
	OwnerContentType *string                `json:"owner_content_type"`
	OwnerObjectId    *openapi_types.UUID    `json:"owner_object_id"`
	Platforms        *[]openapi_types.UUID  `json:"platforms,omitempty"`
	Regions          *[]openapi_types.UUID  `json:"regions,omitempty"`
	Roles            *[]openapi_types.UUID  `json:"roles,omitempty"`

	// Schema Optional schema to validate the structure of the data
	Schema       *openapi_types.UUID   `json:"schema"`
	Sites        *[]openapi_types.UUID `json:"sites,omitempty"`
	Tags         *[]string             `json:"tags,omitempty"`
	TenantGroups *[]openapi_types.UUID `json:"tenant_groups,omitempty"`
	Tenants      *[]openapi_types.UUID `json:"tenants,omitempty"`
	Weight       *int                  `json:"weight,omitempty"`
}

// WritableConsolePortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableConsolePortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *WritableConsolePortRequest_Type `json:"type,omitempty"`
}

// WritableConsolePortRequest_Relationships_Destination_Objects_Item defines model for WritableConsolePortRequest.relationships.destination.objects.Item.
type WritableConsolePortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortRequest_Relationships_Peer_Objects_Item defines model for WritableConsolePortRequest.relationships.peer.objects.Item.
type WritableConsolePortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortRequest_Relationships_Source_Objects_Item defines model for WritableConsolePortRequest.relationships.source.objects.Item.
type WritableConsolePortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortRequest_Type Physical port type
type WritableConsolePortRequest_Type struct {
	union json.RawMessage
}

// WritableConsolePortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableConsolePortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *WritableConsolePortTemplateRequest_Type `json:"type,omitempty"`
}

// WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableConsolePortTemplateRequest.relationships.destination.objects.Item.
type WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableConsolePortTemplateRequest.relationships.peer.objects.Item.
type WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item defines model for WritableConsolePortTemplateRequest.relationships.source.objects.Item.
type WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsolePortTemplateRequest_Type defines model for WritableConsolePortTemplateRequest.Type.
type WritableConsolePortTemplateRequest_Type struct {
	union json.RawMessage
}

// WritableConsoleServerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableConsoleServerPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *WritableConsoleServerPortRequest_Type `json:"type,omitempty"`
}

// WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item defines model for WritableConsoleServerPortRequest.relationships.destination.objects.Item.
type WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item defines model for WritableConsoleServerPortRequest.relationships.peer.objects.Item.
type WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortRequest_Relationships_Source_Objects_Item defines model for WritableConsoleServerPortRequest.relationships.source.objects.Item.
type WritableConsoleServerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortRequest_Type Physical port type
type WritableConsoleServerPortRequest_Type struct {
	union json.RawMessage
}

// WritableConsoleServerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableConsoleServerPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                            `json:"label,omitempty"`
			ObjectType *string                                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *WritableConsoleServerPortTemplateRequest_Type `json:"type,omitempty"`
}

// WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableConsoleServerPortTemplateRequest.relationships.destination.objects.Item.
type WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableConsoleServerPortTemplateRequest.relationships.peer.objects.Item.
type WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item defines model for WritableConsoleServerPortTemplateRequest.relationships.source.objects.Item.
type WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableConsoleServerPortTemplateRequest_Type defines model for WritableConsoleServerPortTemplateRequest.Type.
type WritableConsoleServerPortTemplateRequest_Type struct {
	union json.RawMessage
}

// WritableContactLCMRequest API serializer.
type WritableContactLCMRequest struct {
	Address       *string                 `json:"address,omitempty"`
	Comments      *string                 `json:"comments,omitempty"`
	Contract      *openapi_types.UUID     `json:"contract"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Email         *openapi_types.Email    `json:"email,omitempty"`
	Name          *string                 `json:"name"`
	Phone         *string                 `json:"phone,omitempty"`
	Priority      *int                    `json:"priority,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableContactLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableContactLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritableContactLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableContactLCMRequest_Relationships_Destination_Objects_Item defines model for WritableContactLCMRequest.relationships.destination.objects.Item.
type WritableContactLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableContactLCMRequest_Relationships_Peer_Objects_Item defines model for WritableContactLCMRequest.relationships.peer.objects.Item.
type WritableContactLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableContactLCMRequest_Relationships_Source_Objects_Item defines model for WritableContactLCMRequest.relationships.source.objects.Item.
type WritableContactLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableContractLCMRequest API serializer.
type WritableContractLCMRequest struct {
	ContractType  *string                 `json:"contract_type"`
	Cost          *string                 `json:"cost"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	End           *openapi_types.Date     `json:"end"`
	Name          string                  `json:"name"`
	Provider      *openapi_types.UUID     `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableContractLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableContractLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableContractLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Start        *openapi_types.Date          `json:"start"`
	SupportLevel *string                      `json:"support_level"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableContractLCMRequest_Relationships_Destination_Objects_Item defines model for WritableContractLCMRequest.relationships.destination.objects.Item.
type WritableContractLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableContractLCMRequest_Relationships_Peer_Objects_Item defines model for WritableContractLCMRequest.relationships.peer.objects.Item.
type WritableContractLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableContractLCMRequest_Relationships_Source_Objects_Item defines model for WritableContractLCMRequest.relationships.source.objects.Item.
type WritableContractLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableCustomFieldChoiceRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableCustomFieldChoiceRequest struct {
	Field openapi_types.UUID `json:"field"`
	Value string             `json:"value"`

	// Weight Higher weights appear later in the list
	Weight *int `json:"weight,omitempty"`
}

// WritableDeviceBayRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableDeviceBayRequest struct {
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Device          openapi_types.UUID      `json:"device"`
	InstalledDevice *openapi_types.UUID     `json:"installed_device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableDeviceBayRequest_Relationships_Destination_Objects_Item defines model for WritableDeviceBayRequest.relationships.destination.objects.Item.
type WritableDeviceBayRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceBayRequest_Relationships_Peer_Objects_Item defines model for WritableDeviceBayRequest.relationships.peer.objects.Item.
type WritableDeviceBayRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceBayRequest_Relationships_Source_Objects_Item defines model for WritableDeviceBayRequest.relationships.source.objects.Item.
type WritableDeviceBayRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceBayTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableDeviceBayTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
}

// WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableDeviceBayTemplateRequest.relationships.destination.objects.Item.
type WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableDeviceBayTemplateRequest.relationships.peer.objects.Item.
type WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item defines model for WritableDeviceBayTemplateRequest.relationships.source.objects.Item.
type WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceRedundancyGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableDeviceRedundancyGroupRequest struct {
	Comments         *string                                                `json:"comments,omitempty"`
	CustomFields     *map[string]interface{}                                `json:"custom_fields,omitempty"`
	Description      *string                                                `json:"description,omitempty"`
	FailoverStrategy *WritableDeviceRedundancyGroupRequest_FailoverStrategy `json:"failover_strategy,omitempty"`
	Name             string                                                 `json:"name"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                        `json:"label,omitempty"`
			ObjectType *string                                                                        `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup *openapi_types.UUID          `json:"secrets_group"`
	Slug         *string                      `json:"slug,omitempty"`
	Status       LocationStatusChoices        `json:"status"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableDeviceRedundancyGroupRequest_FailoverStrategy defines model for WritableDeviceRedundancyGroupRequest.FailoverStrategy.
type WritableDeviceRedundancyGroupRequest_FailoverStrategy struct {
	union json.RawMessage
}

// WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item defines model for WritableDeviceRedundancyGroupRequest.relationships.destination.objects.Item.
type WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item defines model for WritableDeviceRedundancyGroupRequest.relationships.peer.objects.Item.
type WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item defines model for WritableDeviceRedundancyGroupRequest.relationships.source.objects.Item.
type WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableDeviceTypeRequest struct {
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	FrontImage   *openapi_types.File     `json:"front_image,omitempty"`

	// IsFullDepth Device consumes both front and rear rack faces
	IsFullDepth  *bool              `json:"is_full_depth,omitempty"`
	Manufacturer openapi_types.UUID `json:"manufacturer"`
	Model        string             `json:"model"`

	// PartNumber Discrete part number (optional)
	PartNumber    *string             `json:"part_number,omitempty"`
	RearImage     *openapi_types.File `json:"rear_image,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`

	// SubdeviceRole Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
	SubdeviceRole *WritableDeviceTypeRequest_SubdeviceRole `json:"subdevice_role,omitempty"`
	Tags          *[]TagSerializerFieldRequest             `json:"tags,omitempty"`
	UHeight       *int                                     `json:"u_height,omitempty"`
}

// WritableDeviceTypeRequest_Relationships_Destination_Objects_Item defines model for WritableDeviceTypeRequest.relationships.destination.objects.Item.
type WritableDeviceTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceTypeRequest_Relationships_Peer_Objects_Item defines model for WritableDeviceTypeRequest.relationships.peer.objects.Item.
type WritableDeviceTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceTypeRequest_Relationships_Source_Objects_Item defines model for WritableDeviceTypeRequest.relationships.source.objects.Item.
type WritableDeviceTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceTypeRequest_SubdeviceRole Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
type WritableDeviceTypeRequest_SubdeviceRole struct {
	union json.RawMessage
}

// WritableDeviceWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableDeviceWithConfigContextRequest struct {
	// AssetTag A unique tag used to identify this device
	AssetTag              *string                 `json:"asset_tag"`
	Cluster               *openapi_types.UUID     `json:"cluster"`
	Comments              *string                 `json:"comments,omitempty"`
	CustomFields          *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRedundancyGroup *openapi_types.UUID     `json:"device_redundancy_group"`

	// DeviceRedundancyGroupPriority The priority the device has in the device redundancy group.
	DeviceRedundancyGroupPriority *int                                         `json:"device_redundancy_group_priority"`
	DeviceRole                    openapi_types.UUID                           `json:"device_role"`
	DeviceType                    openapi_types.UUID                           `json:"device_type"`
	Face                          *WritableDeviceWithConfigContextRequest_Face `json:"face,omitempty"`
	LocalContextData              *map[string]interface{}                      `json:"local_context_data"`

	// LocalContextSchema Optional schema to validate the structure of the data
	LocalContextSchema *openapi_types.UUID `json:"local_context_schema"`
	Location           *openapi_types.UUID `json:"location"`
	Name               *string             `json:"name"`
	Platform           *openapi_types.UUID `json:"platform"`

	// Position The lowest-numbered unit occupied by the device
	Position      *int                `json:"position"`
	PrimaryIp4    *openapi_types.UUID `json:"primary_ip4"`
	PrimaryIp6    *openapi_types.UUID `json:"primary_ip6"`
	Rack          *openapi_types.UUID `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                          `json:"label,omitempty"`
			ObjectType *string                                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	SecretsGroup   *openapi_types.UUID          `json:"secrets_group"`
	Serial         *string                      `json:"serial,omitempty"`
	Site           openapi_types.UUID           `json:"site"`
	Status         DeviceStatusChoices          `json:"status"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant         *openapi_types.UUID          `json:"tenant"`
	VcPosition     *int                         `json:"vc_position"`
	VcPriority     *int                         `json:"vc_priority"`
	VirtualChassis *openapi_types.UUID          `json:"virtual_chassis"`
}

// WritableDeviceWithConfigContextRequest_Face defines model for WritableDeviceWithConfigContextRequest.Face.
type WritableDeviceWithConfigContextRequest_Face struct {
	union json.RawMessage
}

// WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for WritableDeviceWithConfigContextRequest.relationships.destination.objects.Item.
type WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for WritableDeviceWithConfigContextRequest.relationships.peer.objects.Item.
type WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item defines model for WritableDeviceWithConfigContextRequest.relationships.source.objects.Item.
type WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableDynamicGroupMembershipRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableDynamicGroupMembershipRequest struct {
	Group       openapi_types.UUID `json:"group"`
	Operator    OperatorEnum       `json:"operator"`
	ParentGroup openapi_types.UUID `json:"parent_group"`
	Weight      int                `json:"weight"`
}

// WritableFQDNRequest FQDN Serializer.
type WritableFQDNRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Name Resolvable fully qualified domain name (e.g. networktocode.com)
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableFQDNRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]WritableFQDNRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableFQDNRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableFQDNRequest_Relationships_Destination_Objects_Item defines model for WritableFQDNRequest.relationships.destination.objects.Item.
type WritableFQDNRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFQDNRequest_Relationships_Peer_Objects_Item defines model for WritableFQDNRequest.relationships.peer.objects.Item.
type WritableFQDNRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFQDNRequest_Relationships_Source_Objects_Item defines model for WritableFQDNRequest.relationships.source.objects.Item.
type WritableFQDNRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableFrontPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// Label Physical label
	Label            *string            `json:"label,omitempty"`
	Name             string             `json:"name"`
	RearPort         openapi_types.UUID `json:"rear_port"`
	RearPortPosition *int               `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type PortTypeChoices              `json:"type"`
}

// WritableFrontPortRequest_Relationships_Destination_Objects_Item defines model for WritableFrontPortRequest.relationships.destination.objects.Item.
type WritableFrontPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortRequest_Relationships_Peer_Objects_Item defines model for WritableFrontPortRequest.relationships.peer.objects.Item.
type WritableFrontPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortRequest_Relationships_Source_Objects_Item defines model for WritableFrontPortRequest.relationships.source.objects.Item.
type WritableFrontPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableFrontPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label            *string            `json:"label,omitempty"`
	Name             string             `json:"name"`
	RearPort         openapi_types.UUID `json:"rear_port"`
	RearPortPosition *int               `json:"rear_port_position,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type PortTypeChoices `json:"type"`
}

// WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableFrontPortTemplateRequest.relationships.destination.objects.Item.
type WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableFrontPortTemplateRequest.relationships.peer.objects.Item.
type WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item defines model for WritableFrontPortTemplateRequest.relationships.source.objects.Item.
type WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableGitRepositoryRequest Git repositories defined as a data source.
type WritableGitRepositoryRequest struct {
	Branch *string `json:"branch,omitempty"`

	// CurrentHead Commit hash of the most recent fetch from the selected branch. Used for syncing between workers.
	CurrentHead      *string                                               `json:"current_head,omitempty"`
	CustomFields     *map[string]interface{}                               `json:"custom_fields,omitempty"`
	Name             string                                                `json:"name"`
	ProvidedContents *[]WritableGitRepositoryRequest_ProvidedContents_Item `json:"provided_contents,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableGitRepositoryRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableGitRepositoryRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableGitRepositoryRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// RemoteUrl Only HTTP and HTTPS URLs are presently supported
	RemoteUrl    string              `json:"remote_url"`
	SecretsGroup *openapi_types.UUID `json:"secrets_group"`
	Slug         *string             `json:"slug,omitempty"`
	Token        *string             `json:"token,omitempty"`
	Username     *string             `json:"username,omitempty"`
}

// WritableGitRepositoryRequest_ProvidedContents_Item defines model for WritableGitRepositoryRequest.provided_contents.Item.
type WritableGitRepositoryRequest_ProvidedContents_Item struct {
	union json.RawMessage
}

// WritableGitRepositoryRequest_Relationships_Destination_Objects_Item defines model for WritableGitRepositoryRequest.relationships.destination.objects.Item.
type WritableGitRepositoryRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableGitRepositoryRequest_Relationships_Peer_Objects_Item defines model for WritableGitRepositoryRequest.relationships.peer.objects.Item.
type WritableGitRepositoryRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableGitRepositoryRequest_Relationships_Source_Objects_Item defines model for WritableGitRepositoryRequest.relationships.source.objects.Item.
type WritableGitRepositoryRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableGoldenConfigSettingRequest Serializer for GoldenConfigSetting object.
type WritableGoldenConfigSettingRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`

	// BackupPathTemplate The Jinja path representation of where the backup file will be found. The variable `obj` is available as the device instance object of a given device, as is the case for all Jinja templates. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	BackupPathTemplate *string             `json:"backup_path_template,omitempty"`
	BackupRepository   *openapi_types.UUID `json:"backup_repository"`

	// BackupTestConnectivity Whether or not to pretest the connectivity of the device by verifying there is a resolvable IP that can connect to port 22.
	BackupTestConnectivity *bool                   `json:"backup_test_connectivity,omitempty"`
	CustomFields           *map[string]interface{} `json:"custom_fields,omitempty"`
	Description            *string                 `json:"description,omitempty"`
	DynamicGroup           openapi_types.UUID      `json:"dynamic_group"`

	// IntendedPathTemplate The Jinja path representation of where the generated file will be places. e.g. `{{obj.site.slug}}/{{obj.name}}.cfg`
	IntendedPathTemplate *string             `json:"intended_path_template,omitempty"`
	IntendedRepository   *openapi_types.UUID `json:"intended_repository"`

	// JinjaPathTemplate The Jinja path representation of where the Jinja template can be found. e.g. `{{obj.platform.slug}}.j2`
	JinjaPathTemplate *string                      `json:"jinja_path_template,omitempty"`
	JinjaRepository   *openapi_types.UUID          `json:"jinja_repository"`
	Name              string                       `json:"name"`
	Scope             *map[string]interface{}      `json:"scope,omitempty"`
	Slug              string                       `json:"slug"`
	SotAggQuery       *openapi_types.UUID          `json:"sot_agg_query"`
	Tags              *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Weight            *int                         `json:"weight,omitempty"`
}

// WritableHardwareLCMRequest API serializer.
type WritableHardwareLCMRequest struct {
	CustomFields         *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceType           *openapi_types.UUID     `json:"device_type"`
	DocumentationUrl     *string                 `json:"documentation_url,omitempty"`
	EndOfSale            *openapi_types.Date     `json:"end_of_sale"`
	EndOfSecurityPatches *openapi_types.Date     `json:"end_of_security_patches"`
	EndOfSupport         *openapi_types.Date     `json:"end_of_support"`
	EndOfSwReleases      *openapi_types.Date     `json:"end_of_sw_releases"`
	InventoryItem        *string                 `json:"inventory_item"`
	Relationships        *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableHardwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableHardwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableHardwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate *openapi_types.Date          `json:"release_date"`
	Tags        *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableHardwareLCMRequest_Relationships_Destination_Objects_Item defines model for WritableHardwareLCMRequest.relationships.destination.objects.Item.
type WritableHardwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableHardwareLCMRequest_Relationships_Peer_Objects_Item defines model for WritableHardwareLCMRequest.relationships.peer.objects.Item.
type WritableHardwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableHardwareLCMRequest_Relationships_Source_Objects_Item defines model for WritableHardwareLCMRequest.relationships.source.objects.Item.
type WritableHardwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableIPAddressRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableIPAddressRequest struct {
	Address            string                  `json:"address"`
	AssignedObjectId   *openapi_types.UUID     `json:"assigned_object_id"`
	AssignedObjectType *string                 `json:"assigned_object_type"`
	CustomFields       *map[string]interface{} `json:"custom_fields,omitempty"`
	Description        *string                 `json:"description,omitempty"`

	// DnsName Hostname or FQDN (not case-sensitive)
	DnsName *string `json:"dns_name,omitempty"`

	// NatInside The IP Addresses for which this address is the "outside" IP
	NatInside     *openapi_types.UUID `json:"nat_inside"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableIPAddressRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableIPAddressRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableIPAddressRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role The functional role of this IP
	Role   *WritableIPAddressRequest_Role `json:"role,omitempty"`
	Status IPAddressStatusChoices         `json:"status"`
	Tags   *[]TagSerializerFieldRequest   `json:"tags,omitempty"`
	Tenant *openapi_types.UUID            `json:"tenant"`
	Vrf    *openapi_types.UUID            `json:"vrf"`
}

// WritableIPAddressRequest_Relationships_Destination_Objects_Item defines model for WritableIPAddressRequest.relationships.destination.objects.Item.
type WritableIPAddressRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableIPAddressRequest_Relationships_Peer_Objects_Item defines model for WritableIPAddressRequest.relationships.peer.objects.Item.
type WritableIPAddressRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableIPAddressRequest_Relationships_Source_Objects_Item defines model for WritableIPAddressRequest.relationships.source.objects.Item.
type WritableIPAddressRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableIPAddressRequest_Role The functional role of this IP
type WritableIPAddressRequest_Role struct {
	union json.RawMessage
}

// WritableInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableInterfaceRequest struct {
	// Bridge Assigned bridge interface
	Bridge       *openapi_types.UUID     `json:"bridge"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`
	Enabled      *bool                   `json:"enabled,omitempty"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// Lag Assigned LAG interface
	Lag        *openapi_types.UUID `json:"lag"`
	MacAddress *string             `json:"mac_address"`

	// MgmtOnly This interface is used only for out-of-band management
	MgmtOnly *bool                          `json:"mgmt_only,omitempty"`
	Mode     *WritableInterfaceRequest_Mode `json:"mode,omitempty"`
	Mtu      *int                           `json:"mtu"`
	Name     string                         `json:"name"`

	// ParentInterface Assigned parent interface
	ParentInterface *openapi_types.UUID `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status       InterfaceStatusChoices       `json:"status"`
	TaggedVlans  *[]openapi_types.UUID        `json:"tagged_vlans,omitempty"`
	Tags         *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type         InterfaceTypeChoices         `json:"type"`
	UntaggedVlan *openapi_types.UUID          `json:"untagged_vlan"`
}

// WritableInterfaceRequest_Mode defines model for WritableInterfaceRequest.Mode.
type WritableInterfaceRequest_Mode struct {
	union json.RawMessage
}

// WritableInterfaceRequest_Relationships_Destination_Objects_Item defines model for WritableInterfaceRequest.relationships.destination.objects.Item.
type WritableInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInterfaceRequest_Relationships_Peer_Objects_Item defines model for WritableInterfaceRequest.relationships.peer.objects.Item.
type WritableInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInterfaceRequest_Relationships_Source_Objects_Item defines model for WritableInterfaceRequest.relationships.source.objects.Item.
type WritableInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInterfaceTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableInterfaceTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	MgmtOnly      *bool   `json:"mgmt_only,omitempty"`
	Name          string  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type InterfaceTypeChoices `json:"type"`
}

// WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableInterfaceTemplateRequest.relationships.destination.objects.Item.
type WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableInterfaceTemplateRequest.relationships.peer.objects.Item.
type WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item defines model for WritableInterfaceTemplateRequest.relationships.source.objects.Item.
type WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInventoryItemRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableInventoryItemRequest struct {
	// AssetTag A unique tag used to identify this item
	AssetTag     *string                 `json:"asset_tag"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// Discovered This item was automatically discovered
	Discovered *bool `json:"discovered,omitempty"`

	// Label Physical label
	Label        *string             `json:"label,omitempty"`
	Manufacturer *openapi_types.UUID `json:"manufacturer"`
	Name         string              `json:"name"`
	Parent       *openapi_types.UUID `json:"parent"`

	// PartId Manufacturer-assigned part identifier
	PartId        *string `json:"part_id,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableInventoryItemRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableInventoryItemRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableInventoryItemRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Serial *string                      `json:"serial,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableInventoryItemRequest_Relationships_Destination_Objects_Item defines model for WritableInventoryItemRequest.relationships.destination.objects.Item.
type WritableInventoryItemRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInventoryItemRequest_Relationships_Peer_Objects_Item defines model for WritableInventoryItemRequest.relationships.peer.objects.Item.
type WritableInventoryItemRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableInventoryItemRequest_Relationships_Source_Objects_Item defines model for WritableInventoryItemRequest.relationships.source.objects.Item.
type WritableInventoryItemRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableLocationRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	LocationType  openapi_types.UUID      `json:"location_type"`
	Name          string                  `json:"name"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableLocationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableLocationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableLocationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site   *openapi_types.UUID          `json:"site"`
	Slug   *string                      `json:"slug,omitempty"`
	Status LocationStatusChoices        `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// WritableLocationRequest_Relationships_Destination_Objects_Item defines model for WritableLocationRequest.relationships.destination.objects.Item.
type WritableLocationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationRequest_Relationships_Peer_Objects_Item defines model for WritableLocationRequest.relationships.peer.objects.Item.
type WritableLocationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationRequest_Relationships_Source_Objects_Item defines model for WritableLocationRequest.relationships.source.objects.Item.
type WritableLocationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationTypeRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableLocationTypeRequest struct {
	ContentTypes *[]string               `json:"content_types,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Name         string                  `json:"name"`

	// Nestable Allow Locations of this type to be parents/children of other Locations of this same type
	Nestable      *bool               `json:"nestable,omitempty"`
	Parent        *openapi_types.UUID `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritableLocationTypeRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritableLocationTypeRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableLocationTypeRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// WritableLocationTypeRequest_Relationships_Destination_Objects_Item defines model for WritableLocationTypeRequest.relationships.destination.objects.Item.
type WritableLocationTypeRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationTypeRequest_Relationships_Peer_Objects_Item defines model for WritableLocationTypeRequest.relationships.peer.objects.Item.
type WritableLocationTypeRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableLocationTypeRequest_Relationships_Source_Objects_Item defines model for WritableLocationTypeRequest.relationships.source.objects.Item.
type WritableLocationTypeRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableNATPolicyRuleRequest PolicyRule Serializer.
type WritableNATPolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest `json:"destination_zone,omitempty"`
	Index           *int         `json:"index"`
	Log             *bool        `json:"log,omitempty"`
	Name            string       `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Remark    *bool   `json:"remark,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item defines model for WritableNATPolicyRuleRequest.relationships.destination.objects.Item.
type WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item defines model for WritableNATPolicyRuleRequest.relationships.peer.objects.Item.
type WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item defines model for WritableNATPolicyRuleRequest.relationships.source.objects.Item.
type WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableObjectPermissionRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableObjectPermissionRequest struct {
	// Actions The list of actions granted by this permission
	Actions map[string]interface{} `json:"actions"`

	// Constraints Queryset filter matching the applicable objects of the selected type(s)
	Constraints *map[string]interface{} `json:"constraints"`
	Description *string                 `json:"description,omitempty"`
	Enabled     *bool                   `json:"enabled,omitempty"`
	Groups      *[]int                  `json:"groups,omitempty"`
	Name        string                  `json:"name"`
	ObjectTypes []string                `json:"object_types"`
	Users       *[]openapi_types.UUID   `json:"users,omitempty"`
}

// WritablePeerEndpointRequest REST API serializer for PeerEndpoint records.
type WritablePeerEndpointRequest struct {
	AutonomousSystem *openapi_types.UUID          `json:"autonomous_system"`
	CustomFields     *map[string]interface{}      `json:"custom_fields,omitempty"`
	Enabled          *bool                        `json:"enabled,omitempty"`
	ExportPolicy     *string                      `json:"export_policy,omitempty"`
	ImportPolicy     *string                      `json:"import_policy,omitempty"`
	Peer             *openapi_types.UUID          `json:"peer"`
	PeerGroup        *openapi_types.UUID          `json:"peer_group"`
	Peering          openapi_types.UUID           `json:"peering"`
	RoutingInstance  *openapi_types.UUID          `json:"routing_instance"`
	Secret           *openapi_types.UUID          `json:"secret"`
	SourceInterface  *openapi_types.UUID          `json:"source_interface"`
	SourceIp         *openapi_types.UUID          `json:"source_ip"`
	Tags             *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritablePeerGroupRequest REST API serializer for PeerGroup records.
type WritablePeerGroupRequest struct {
	AutonomousSystem *openapi_types.UUID     `json:"autonomous_system"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Enabled          *bool                   `json:"enabled,omitempty"`
	ExportPolicy     *string                 `json:"export_policy,omitempty"`
	ImportPolicy     *string                 `json:"import_policy,omitempty"`
	Name             string                  `json:"name"`
	Role             *openapi_types.UUID     `json:"role"`
	RoutingInstance  openapi_types.UUID      `json:"routing_instance"`
	Secret           *openapi_types.UUID     `json:"secret"`
	SourceInterface  *openapi_types.UUID     `json:"source_interface"`
	SourceIp         *openapi_types.UUID     `json:"source_ip"`
	Template         *openapi_types.UUID     `json:"template"`
}

// WritablePeerGroupTemplateRequest REST API serializer for PeerGroup records.
type WritablePeerGroupTemplateRequest struct {
	AutonomousSystem *openapi_types.UUID     `json:"autonomous_system"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Description      *string                 `json:"description,omitempty"`
	Enabled          *bool                   `json:"enabled,omitempty"`
	ExportPolicy     *string                 `json:"export_policy,omitempty"`
	ImportPolicy     *string                 `json:"import_policy,omitempty"`
	Name             string                  `json:"name"`
	Role             *openapi_types.UUID     `json:"role"`
	Secret           *openapi_types.UUID     `json:"secret"`
}

// WritablePlatformRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePlatformRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Manufacturer Optionally limit this platform to devices of a certain manufacturer
	Manufacturer *openapi_types.UUID `json:"manufacturer"`
	Name         string              `json:"name"`

	// NapalmArgs Additional arguments to pass when initiating the NAPALM driver (JSON format)
	NapalmArgs *map[string]interface{} `json:"napalm_args"`

	// NapalmDriver The name of the NAPALM driver to use when interacting with devices
	NapalmDriver  *string `json:"napalm_driver,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritablePlatformRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritablePlatformRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritablePlatformRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// WritablePlatformRequest_Relationships_Destination_Objects_Item defines model for WritablePlatformRequest.relationships.destination.objects.Item.
type WritablePlatformRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePlatformRequest_Relationships_Peer_Objects_Item defines model for WritablePlatformRequest.relationships.peer.objects.Item.
type WritablePlatformRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePlatformRequest_Relationships_Source_Objects_Item defines model for WritablePlatformRequest.relationships.source.objects.Item.
type WritablePlatformRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePolicyRuleRequest PolicyRule Serializer.
type WritablePolicyRuleRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Action          ActionEnum              `json:"action"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description"`

	// DestinationZone Zone Serializer.
	DestinationZone *ZoneRequest `json:"destination_zone,omitempty"`
	Index           *int         `json:"index"`
	Log             *bool        `json:"log,omitempty"`
	Name            string       `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritablePolicyRuleRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritablePolicyRuleRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritablePolicyRuleRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	RequestId *string `json:"request_id"`

	// SourceZone Zone Serializer.
	SourceZone *ZoneRequest                 `json:"source_zone,omitempty"`
	Status     *Status8f7Enum               `json:"status,omitempty"`
	Tags       *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritablePolicyRuleRequest_Relationships_Destination_Objects_Item defines model for WritablePolicyRuleRequest.relationships.destination.objects.Item.
type WritablePolicyRuleRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePolicyRuleRequest_Relationships_Peer_Objects_Item defines model for WritablePolicyRuleRequest.relationships.peer.objects.Item.
type WritablePolicyRuleRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePolicyRuleRequest_Relationships_Source_Objects_Item defines model for WritablePolicyRuleRequest.relationships.source.objects.Item.
type WritablePolicyRuleRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerFeedRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerFeedRequest struct {
	Amperage     *int                    `json:"amperage,omitempty"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// MaxUtilization Maximum permissible draw (percentage)
	MaxUtilization *int                `json:"max_utilization,omitempty"`
	Name           string              `json:"name"`
	Phase          *PhaseEnum          `json:"phase,omitempty"`
	PowerPanel     openapi_types.UUID  `json:"power_panel"`
	Rack           *openapi_types.UUID `json:"rack"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritablePowerFeedRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritablePowerFeedRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritablePowerFeedRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status  PowerFeedStatusChoices       `json:"status"`
	Supply  *SupplyEnum                  `json:"supply,omitempty"`
	Tags    *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type    *PowerFeedTypeChoices        `json:"type,omitempty"`
	Voltage *int                         `json:"voltage,omitempty"`
}

// WritablePowerFeedRequest_Relationships_Destination_Objects_Item defines model for WritablePowerFeedRequest.relationships.destination.objects.Item.
type WritablePowerFeedRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerFeedRequest_Relationships_Peer_Objects_Item defines model for WritablePowerFeedRequest.relationships.peer.objects.Item.
type WritablePowerFeedRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerFeedRequest_Relationships_Source_Objects_Item defines model for WritablePowerFeedRequest.relationships.source.objects.Item.
type WritablePowerFeedRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerOutletRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *WritablePowerOutletRequest_FeedLeg `json:"feed_leg,omitempty"`

	// Label Physical label
	Label         *string             `json:"label,omitempty"`
	Name          string              `json:"name"`
	PowerPort     *openapi_types.UUID `json:"power_port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *WritablePowerOutletRequest_Type `json:"type,omitempty"`
}

// WritablePowerOutletRequest_FeedLeg Phase (for three-phase feeds)
type WritablePowerOutletRequest_FeedLeg struct {
	union json.RawMessage
}

// WritablePowerOutletRequest_Relationships_Destination_Objects_Item defines model for WritablePowerOutletRequest.relationships.destination.objects.Item.
type WritablePowerOutletRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletRequest_Relationships_Peer_Objects_Item defines model for WritablePowerOutletRequest.relationships.peer.objects.Item.
type WritablePowerOutletRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletRequest_Relationships_Source_Objects_Item defines model for WritablePowerOutletRequest.relationships.source.objects.Item.
type WritablePowerOutletRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletRequest_Type Physical port type
type WritablePowerOutletRequest_Type struct {
	union json.RawMessage
}

// WritablePowerOutletTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerOutletTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *WritablePowerOutletTemplateRequest_FeedLeg `json:"feed_leg,omitempty"`

	// Label Physical label
	Label         *string             `json:"label,omitempty"`
	Name          string              `json:"name"`
	PowerPort     *openapi_types.UUID `json:"power_port"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                      `json:"label,omitempty"`
			ObjectType *string                                                                      `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *WritablePowerOutletTemplateRequest_Type `json:"type,omitempty"`
}

// WritablePowerOutletTemplateRequest_FeedLeg Phase (for three-phase feeds)
type WritablePowerOutletTemplateRequest_FeedLeg struct {
	union json.RawMessage
}

// WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item defines model for WritablePowerOutletTemplateRequest.relationships.destination.objects.Item.
type WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item defines model for WritablePowerOutletTemplateRequest.relationships.peer.objects.Item.
type WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item defines model for WritablePowerOutletTemplateRequest.relationships.source.objects.Item.
type WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerOutletTemplateRequest_Type defines model for WritablePowerOutletTemplateRequest.Type.
type WritablePowerOutletTemplateRequest_Type struct {
	union json.RawMessage
}

// WritablePowerPanelRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerPanelRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          string                  `json:"name"`
	RackGroup     *openapi_types.UUID     `json:"rack_group"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPanelRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPanelRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                        `json:"label,omitempty"`
			ObjectType *string                                                        `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPanelRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site openapi_types.UUID           `json:"site"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritablePowerPanelRequest_Relationships_Destination_Objects_Item defines model for WritablePowerPanelRequest.relationships.destination.objects.Item.
type WritablePowerPanelRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPanelRequest_Relationships_Peer_Objects_Item defines model for WritablePowerPanelRequest.relationships.peer.objects.Item.
type WritablePowerPanelRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPanelRequest_Relationships_Source_Objects_Item defines model for WritablePowerPanelRequest.relationships.source.objects.Item.
type WritablePowerPanelRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerPortRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Device        openapi_types.UUID      `json:"device"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int   `json:"maximum_draw"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`

	// Type Physical port type
	Type *WritablePowerPortRequest_Type `json:"type,omitempty"`
}

// WritablePowerPortRequest_Relationships_Destination_Objects_Item defines model for WritablePowerPortRequest.relationships.destination.objects.Item.
type WritablePowerPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortRequest_Relationships_Peer_Objects_Item defines model for WritablePowerPortRequest.relationships.peer.objects.Item.
type WritablePowerPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortRequest_Relationships_Source_Objects_Item defines model for WritablePowerPortRequest.relationships.source.objects.Item.
type WritablePowerPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortRequest_Type Physical port type
type WritablePowerPortRequest_Type struct {
	union json.RawMessage
}

// WritablePowerPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePowerPortTemplateRequest struct {
	// AllocatedDraw Allocated power draw (watts)
	AllocatedDraw *int                    `json:"allocated_draw"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	DeviceType    openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label *string `json:"label,omitempty"`

	// MaximumDraw Maximum power draw (watts)
	MaximumDraw   *int   `json:"maximum_draw"`
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                    `json:"label,omitempty"`
			ObjectType *string                                                                    `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                               `json:"label,omitempty"`
			ObjectType *string                                                               `json:"object_type,omitempty"`
			Objects    *[]WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type *WritablePowerPortTemplateRequest_Type `json:"type,omitempty"`
}

// WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item defines model for WritablePowerPortTemplateRequest.relationships.destination.objects.Item.
type WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item defines model for WritablePowerPortTemplateRequest.relationships.peer.objects.Item.
type WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item defines model for WritablePowerPortTemplateRequest.relationships.source.objects.Item.
type WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePowerPortTemplateRequest_Type defines model for WritablePowerPortTemplateRequest.Type.
type WritablePowerPortTemplateRequest_Type struct {
	union json.RawMessage
}

// WritablePrefixRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritablePrefixRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// IsPool All IP addresses within this prefix are considered usable
	IsPool        *bool               `json:"is_pool,omitempty"`
	Location      *openapi_types.UUID `json:"location"`
	Prefix        string              `json:"prefix"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritablePrefixRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritablePrefixRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritablePrefixRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role The primary function of this prefix
	Role   *openapi_types.UUID          `json:"role"`
	Site   *openapi_types.UUID          `json:"site"`
	Status PrefixStatusChoices          `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vlan   *openapi_types.UUID          `json:"vlan"`
	Vrf    *openapi_types.UUID          `json:"vrf"`
}

// WritablePrefixRequest_Relationships_Destination_Objects_Item defines model for WritablePrefixRequest.relationships.destination.objects.Item.
type WritablePrefixRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePrefixRequest_Relationships_Peer_Objects_Item defines model for WritablePrefixRequest.relationships.peer.objects.Item.
type WritablePrefixRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritablePrefixRequest_Relationships_Source_Objects_Item defines model for WritablePrefixRequest.relationships.source.objects.Item.
type WritablePrefixRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableProviderNetworkRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableProviderNetworkRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Provider      openapi_types.UUID      `json:"provider"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableProviderNetworkRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableProviderNetworkRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableProviderNetworkRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableProviderNetworkRequest_Relationships_Destination_Objects_Item defines model for WritableProviderNetworkRequest.relationships.destination.objects.Item.
type WritableProviderNetworkRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableProviderNetworkRequest_Relationships_Peer_Objects_Item defines model for WritableProviderNetworkRequest.relationships.peer.objects.Item.
type WritableProviderNetworkRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableProviderNetworkRequest_Relationships_Source_Objects_Item defines model for WritableProviderNetworkRequest.relationships.source.objects.Item.
type WritableProviderNetworkRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRackGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          string                  `json:"name"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableRackGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableRackGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableRackGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site openapi_types.UUID `json:"site"`
	Slug *string            `json:"slug,omitempty"`
}

// WritableRackGroupRequest_Relationships_Destination_Objects_Item defines model for WritableRackGroupRequest.relationships.destination.objects.Item.
type WritableRackGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackGroupRequest_Relationships_Peer_Objects_Item defines model for WritableRackGroupRequest.relationships.peer.objects.Item.
type WritableRackGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackGroupRequest_Relationships_Source_Objects_Item defines model for WritableRackGroupRequest.relationships.source.objects.Item.
type WritableRackGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRackRequest struct {
	// AssetTag A unique tag used to identify this rack
	AssetTag     *string                 `json:"asset_tag"`
	Comments     *string                 `json:"comments,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`

	// DescUnits Units are numbered top-to-bottom
	DescUnits *bool `json:"desc_units,omitempty"`

	// FacilityId Locally-assigned identifier
	FacilityId *string `json:"facility_id"`

	// Group Assigned group
	Group    *openapi_types.UUID `json:"group"`
	Location *openapi_types.UUID `json:"location"`
	Name     string              `json:"name"`

	// OuterDepth Outer dimension of rack (depth)
	OuterDepth *int                           `json:"outer_depth"`
	OuterUnit  *WritableRackRequest_OuterUnit `json:"outer_unit,omitempty"`

	// OuterWidth Outer dimension of rack (width)
	OuterWidth    *int `json:"outer_width"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableRackRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]WritableRackRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableRackRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`

	// Role Functional role
	Role   *openapi_types.UUID          `json:"role"`
	Serial *string                      `json:"serial,omitempty"`
	Site   openapi_types.UUID           `json:"site"`
	Status RackStatusChoices            `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Type   *WritableRackRequest_Type    `json:"type,omitempty"`

	// UHeight Height in rack units
	UHeight *int `json:"u_height,omitempty"`

	// Width Rail-to-rail width
	Width *WidthEnum `json:"width,omitempty"`
}

// WritableRackRequest_OuterUnit defines model for WritableRackRequest.OuterUnit.
type WritableRackRequest_OuterUnit struct {
	union json.RawMessage
}

// WritableRackRequest_Relationships_Destination_Objects_Item defines model for WritableRackRequest.relationships.destination.objects.Item.
type WritableRackRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackRequest_Relationships_Peer_Objects_Item defines model for WritableRackRequest.relationships.peer.objects.Item.
type WritableRackRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackRequest_Relationships_Source_Objects_Item defines model for WritableRackRequest.relationships.source.objects.Item.
type WritableRackRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackRequest_Type defines model for WritableRackRequest.Type.
type WritableRackRequest_Type struct {
	union json.RawMessage
}

// WritableRackReservationRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRackReservationRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   string                  `json:"description"`
	Rack          openapi_types.UUID      `json:"rack"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableRackReservationRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableRackReservationRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableRackReservationRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Units  map[string]interface{}       `json:"units"`
	User   openapi_types.UUID           `json:"user"`
}

// WritableRackReservationRequest_Relationships_Destination_Objects_Item defines model for WritableRackReservationRequest.relationships.destination.objects.Item.
type WritableRackReservationRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackReservationRequest_Relationships_Peer_Objects_Item defines model for WritableRackReservationRequest.relationships.peer.objects.Item.
type WritableRackReservationRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRackReservationRequest_Relationships_Source_Objects_Item defines model for WritableRackReservationRequest.relationships.source.objects.Item.
type WritableRackReservationRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRearPortRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	Device       openapi_types.UUID      `json:"device"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Type PortTypeChoices              `json:"type"`
}

// WritableRearPortRequest_Relationships_Destination_Objects_Item defines model for WritableRearPortRequest.relationships.destination.objects.Item.
type WritableRearPortRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortRequest_Relationships_Peer_Objects_Item defines model for WritableRearPortRequest.relationships.peer.objects.Item.
type WritableRearPortRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortRequest_Relationships_Source_Objects_Item defines model for WritableRearPortRequest.relationships.source.objects.Item.
type WritableRearPortRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortTemplateRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRearPortTemplateRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`
	DeviceType   openapi_types.UUID      `json:"device_type"`

	// Label Physical label
	Label         *string `json:"label,omitempty"`
	Name          string  `json:"name"`
	Positions     *int    `json:"positions,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableRearPortTemplateRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Type PortTypeChoices `json:"type"`
}

// WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item defines model for WritableRearPortTemplateRequest.relationships.destination.objects.Item.
type WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item defines model for WritableRearPortTemplateRequest.relationships.peer.objects.Item.
type WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRearPortTemplateRequest_Relationships_Source_Objects_Item defines model for WritableRearPortTemplateRequest.relationships.source.objects.Item.
type WritableRearPortTemplateRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRegionRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRegionRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableRegionRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableRegionRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableRegionRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// WritableRegionRequest_Relationships_Destination_Objects_Item defines model for WritableRegionRequest.relationships.destination.objects.Item.
type WritableRegionRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRegionRequest_Relationships_Peer_Objects_Item defines model for WritableRegionRequest.relationships.peer.objects.Item.
type WritableRegionRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRegionRequest_Relationships_Source_Objects_Item defines model for WritableRegionRequest.relationships.source.objects.Item.
type WritableRegionRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRelationshipAssociationRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableRelationshipAssociationRequest struct {
	DestinationId   openapi_types.UUID `json:"destination_id"`
	DestinationType string             `json:"destination_type"`
	Relationship    openapi_types.UUID `json:"relationship"`
	SourceId        openapi_types.UUID `json:"source_id"`
	SourceType      string             `json:"source_type"`
}

// WritableRouteTargetRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableRouteTargetRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Name Route target value (formatted in accordance with RFC 4360)
	Name          string `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableRouteTargetRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableRouteTargetRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableRouteTargetRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// WritableRouteTargetRequest_Relationships_Destination_Objects_Item defines model for WritableRouteTargetRequest.relationships.destination.objects.Item.
type WritableRouteTargetRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRouteTargetRequest_Relationships_Peer_Objects_Item defines model for WritableRouteTargetRequest.relationships.peer.objects.Item.
type WritableRouteTargetRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableRouteTargetRequest_Relationships_Source_Objects_Item defines model for WritableRouteTargetRequest.relationships.source.objects.Item.
type WritableRouteTargetRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSecretsGroupAssociationRequest Serializer for `SecretsGroupAssociation` objects.
type WritableSecretsGroupAssociationRequest struct {
	AccessType AccessTypeEnum     `json:"access_type"`
	Group      openapi_types.UUID `json:"group"`
	Secret     openapi_types.UUID `json:"secret"`
	SecretType SecretTypeEnum     `json:"secret_type"`
}

// WritableServiceObjectGroupRequest ServiceObjectGroup Serializer.
type WritableServiceObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            string                  `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                     `json:"label,omitempty"`
			ObjectType *string                                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item defines model for WritableServiceObjectGroupRequest.relationships.destination.objects.Item.
type WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item defines model for WritableServiceObjectGroupRequest.relationships.peer.objects.Item.
type WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item defines model for WritableServiceObjectGroupRequest.relationships.source.objects.Item.
type WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableServiceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableServiceRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Device        *openapi_types.UUID     `json:"device"`
	Ipaddresses   *[]openapi_types.UUID   `json:"ipaddresses,omitempty"`
	Name          string                  `json:"name"`
	Ports         []int                   `json:"ports"`
	Protocol      ProtocolEnum            `json:"protocol"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableServiceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                   `json:"label,omitempty"`
			ObjectType *string                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableServiceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableServiceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	VirtualMachine *openapi_types.UUID          `json:"virtual_machine"`
}

// WritableServiceRequest_Relationships_Destination_Objects_Item defines model for WritableServiceRequest.relationships.destination.objects.Item.
type WritableServiceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableServiceRequest_Relationships_Peer_Objects_Item defines model for WritableServiceRequest.relationships.peer.objects.Item.
type WritableServiceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableServiceRequest_Relationships_Source_Objects_Item defines model for WritableServiceRequest.relationships.source.objects.Item.
type WritableServiceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSiteRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableSiteRequest struct {
	// Asn 32-bit autonomous system number
	Asn          *int64                  `json:"asn"`
	Comments     *string                 `json:"comments,omitempty"`
	ContactEmail *openapi_types.Email    `json:"contact_email,omitempty"`
	ContactName  *string                 `json:"contact_name,omitempty"`
	ContactPhone *string                 `json:"contact_phone,omitempty"`
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// Facility Local facility ID or description
	Facility *string `json:"facility,omitempty"`

	// Latitude GPS coordinate (latitude)
	Latitude *string `json:"latitude"`

	// Longitude GPS coordinate (longitude)
	Longitude       *string             `json:"longitude"`
	Name            string              `json:"name"`
	PhysicalAddress *string             `json:"physical_address,omitempty"`
	Region          *openapi_types.UUID `json:"region"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableSiteRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]WritableSiteRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableSiteRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ShippingAddress *string                      `json:"shipping_address,omitempty"`
	Slug            *string                      `json:"slug,omitempty"`
	Status          LocationStatusChoices        `json:"status"`
	Tags            *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant          *openapi_types.UUID          `json:"tenant"`
	TimeZone        *string                      `json:"time_zone"`
}

// WritableSiteRequest_Relationships_Destination_Objects_Item defines model for WritableSiteRequest.relationships.destination.objects.Item.
type WritableSiteRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSiteRequest_Relationships_Peer_Objects_Item defines model for WritableSiteRequest.relationships.peer.objects.Item.
type WritableSiteRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSiteRequest_Relationships_Source_Objects_Item defines model for WritableSiteRequest.relationships.source.objects.Item.
type WritableSiteRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareImageLCMRequest REST API serializer for SoftwareImageLCM records.
type WritableSoftwareImageLCMRequest struct {
	CustomFields      *map[string]interface{} `json:"custom_fields,omitempty"`
	DefaultImage      *bool                   `json:"default_image,omitempty"`
	DeviceTypes       *[]openapi_types.UUID   `json:"device_types,omitempty"`
	DownloadUrl       *string                 `json:"download_url,omitempty"`
	ImageFileChecksum *string                 `json:"image_file_checksum,omitempty"`
	ImageFileName     string                  `json:"image_file_name"`
	InventoryItems    *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags        *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Relationships     *struct {
		Destination *struct {
			Label      *string                                                                   `json:"label,omitempty"`
			ObjectType *string                                                                   `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Software openapi_types.UUID           `json:"software"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item defines model for WritableSoftwareImageLCMRequest.relationships.destination.objects.Item.
type WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item defines model for WritableSoftwareImageLCMRequest.relationships.peer.objects.Item.
type WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item defines model for WritableSoftwareImageLCMRequest.relationships.source.objects.Item.
type WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareLCMRequest REST API serializer for SoftwareLCM records.
type WritableSoftwareLCMRequest struct {
	Alias            *string                 `json:"alias"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	DevicePlatform   openapi_types.UUID      `json:"device_platform"`
	DocumentationUrl *string                 `json:"documentation_url,omitempty"`
	EndOfSupport     *openapi_types.Date     `json:"end_of_support"`
	LongTermSupport  *bool                   `json:"long_term_support,omitempty"`
	PreRelease       *bool                   `json:"pre_release,omitempty"`
	Relationships    *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	ReleaseDate    *openapi_types.Date          `json:"release_date"`
	SoftwareImages []openapi_types.UUID         `json:"software_images"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Version        string                       `json:"version"`
}

// WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for WritableSoftwareLCMRequest.relationships.destination.objects.Item.
type WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for WritableSoftwareLCMRequest.relationships.peer.objects.Item.
type WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for WritableSoftwareLCMRequest.relationships.source.objects.Item.
type WritableSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableTenantGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Name          string                  `json:"name"`
	Parent        *openapi_types.UUID     `json:"parent"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableTenantGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableTenantGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableTenantGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string `json:"slug,omitempty"`
}

// WritableTenantGroupRequest_Relationships_Destination_Objects_Item defines model for WritableTenantGroupRequest.relationships.destination.objects.Item.
type WritableTenantGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantGroupRequest_Relationships_Peer_Objects_Item defines model for WritableTenantGroupRequest.relationships.peer.objects.Item.
type WritableTenantGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantGroupRequest_Relationships_Source_Objects_Item defines model for WritableTenantGroupRequest.relationships.source.objects.Item.
type WritableTenantGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableTenantRequest struct {
	Comments      *string                 `json:"comments,omitempty"`
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableTenantRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableTenantRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                    `json:"label,omitempty"`
			ObjectType *string                                                    `json:"object_type,omitempty"`
			Objects    *[]WritableTenantRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Slug *string                      `json:"slug,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableTenantRequest_Relationships_Destination_Objects_Item defines model for WritableTenantRequest.relationships.destination.objects.Item.
type WritableTenantRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantRequest_Relationships_Peer_Objects_Item defines model for WritableTenantRequest.relationships.peer.objects.Item.
type WritableTenantRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableTenantRequest_Relationships_Source_Objects_Item defines model for WritableTenantRequest.relationships.source.objects.Item.
type WritableTenantRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableUserObjectGroupRequest UserObjectGroup Serializer.
type WritableUserObjectGroupRequest struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`
	Name            string                  `json:"name"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                           `json:"label,omitempty"`
			ObjectType *string                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                             `json:"label,omitempty"`
			ObjectType *string                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableUserObjectGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item defines model for WritableUserObjectGroupRequest.relationships.destination.objects.Item.
type WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item defines model for WritableUserObjectGroupRequest.relationships.peer.objects.Item.
type WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableUserObjectGroupRequest_Relationships_Source_Objects_Item defines model for WritableUserObjectGroupRequest.relationships.source.objects.Item.
type WritableUserObjectGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableUserRequest Extends the built-in ModelSerializer to enforce calling full_clean() on a copy of the associated instance during
// validation. (DRF does not do this by default; see https://github.com/encode/django-rest-framework/issues/3144)
type WritableUserRequest struct {
	DateJoined *time.Time           `json:"date_joined,omitempty"`
	Email      *openapi_types.Email `json:"email,omitempty"`
	FirstName  *string              `json:"first_name,omitempty"`

	// Groups The groups this user belongs to. A user will get all permissions granted to each of their groups.
	Groups *[]int `json:"groups,omitempty"`

	// IsActive Designates whether this user should be treated as active. Unselect this instead of deleting accounts.
	IsActive *bool `json:"is_active,omitempty"`

	// IsStaff Designates whether the user can log into this admin site.
	IsStaff  *bool   `json:"is_staff,omitempty"`
	LastName *string `json:"last_name,omitempty"`
	Password *string `json:"password,omitempty"`

	// Username Required. 150 characters or fewer. Letters, digits and @/./+/-/_ only.
	Username string `json:"username"`
}

// WritableVLANGroupRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVLANGroupRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableVLANGroupRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                     `json:"label,omitempty"`
			ObjectType *string                                                     `json:"object_type,omitempty"`
			Objects    *[]WritableVLANGroupRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableVLANGroupRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Site *openapi_types.UUID `json:"site"`
	Slug *string             `json:"slug,omitempty"`
}

// WritableVLANGroupRequest_Relationships_Destination_Objects_Item defines model for WritableVLANGroupRequest.relationships.destination.objects.Item.
type WritableVLANGroupRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVLANGroupRequest_Relationships_Peer_Objects_Item defines model for WritableVLANGroupRequest.relationships.peer.objects.Item.
type WritableVLANGroupRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVLANGroupRequest_Relationships_Source_Objects_Item defines model for WritableVLANGroupRequest.relationships.source.objects.Item.
type WritableVLANGroupRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVLANRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVLANRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Description   *string                 `json:"description,omitempty"`
	Group         *openapi_types.UUID     `json:"group"`
	Location      *openapi_types.UUID     `json:"location"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableVLANRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                `json:"label,omitempty"`
			ObjectType *string                                                `json:"object_type,omitempty"`
			Objects    *[]WritableVLANRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                  `json:"label,omitempty"`
			ObjectType *string                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableVLANRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *openapi_types.UUID          `json:"role"`
	Site   *openapi_types.UUID          `json:"site"`
	Status VLANStatusChoices            `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vid    int                          `json:"vid"`
}

// WritableVLANRequest_Relationships_Destination_Objects_Item defines model for WritableVLANRequest.relationships.destination.objects.Item.
type WritableVLANRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVLANRequest_Relationships_Peer_Objects_Item defines model for WritableVLANRequest.relationships.peer.objects.Item.
type WritableVLANRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVLANRequest_Relationships_Source_Objects_Item defines model for WritableVLANRequest.relationships.source.objects.Item.
type WritableVLANRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVMInterfaceRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVMInterfaceRequest struct {
	// Bridge Assigned bridge interface
	Bridge       *openapi_types.UUID              `json:"bridge"`
	CustomFields *map[string]interface{}          `json:"custom_fields,omitempty"`
	Description  *string                          `json:"description,omitempty"`
	Enabled      *bool                            `json:"enabled,omitempty"`
	MacAddress   *string                          `json:"mac_address"`
	Mode         *WritableVMInterfaceRequest_Mode `json:"mode,omitempty"`
	Mtu          *int                             `json:"mtu"`
	Name         string                           `json:"name"`

	// ParentInterface Assigned parent interface
	ParentInterface *openapi_types.UUID `json:"parent_interface"`
	Relationships   *struct {
		Destination *struct {
			Label      *string                                                              `json:"label,omitempty"`
			ObjectType *string                                                              `json:"object_type,omitempty"`
			Objects    *[]WritableVMInterfaceRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                       `json:"label,omitempty"`
			ObjectType *string                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableVMInterfaceRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                         `json:"label,omitempty"`
			ObjectType *string                                                         `json:"object_type,omitempty"`
			Objects    *[]WritableVMInterfaceRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status         InterfaceStatusChoices       `json:"status"`
	TaggedVlans    *[]openapi_types.UUID        `json:"tagged_vlans,omitempty"`
	Tags           *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	UntaggedVlan   *openapi_types.UUID          `json:"untagged_vlan"`
	VirtualMachine openapi_types.UUID           `json:"virtual_machine"`
}

// WritableVMInterfaceRequest_Mode defines model for WritableVMInterfaceRequest.Mode.
type WritableVMInterfaceRequest_Mode struct {
	union json.RawMessage
}

// WritableVMInterfaceRequest_Relationships_Destination_Objects_Item defines model for WritableVMInterfaceRequest.relationships.destination.objects.Item.
type WritableVMInterfaceRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVMInterfaceRequest_Relationships_Peer_Objects_Item defines model for WritableVMInterfaceRequest.relationships.peer.objects.Item.
type WritableVMInterfaceRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVMInterfaceRequest_Relationships_Source_Objects_Item defines model for WritableVMInterfaceRequest.relationships.source.objects.Item.
type WritableVMInterfaceRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVRFRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVRFRequest struct {
	CustomFields *map[string]interface{} `json:"custom_fields,omitempty"`
	Description  *string                 `json:"description,omitempty"`

	// EnforceUnique Prevent duplicate prefixes/IP addresses within this VRF
	EnforceUnique *bool                 `json:"enforce_unique,omitempty"`
	ExportTargets *[]openapi_types.UUID `json:"export_targets,omitempty"`
	ImportTargets *[]openapi_types.UUID `json:"import_targets,omitempty"`
	Name          string                `json:"name"`

	// Rd Unique route distinguisher (as defined in RFC 4364)
	Rd            *string `json:"rd"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                      `json:"label,omitempty"`
			ObjectType *string                                                      `json:"object_type,omitempty"`
			Objects    *[]WritableVRFRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]WritableVRFRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                 `json:"label,omitempty"`
			ObjectType *string                                                 `json:"object_type,omitempty"`
			Objects    *[]WritableVRFRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
}

// WritableVRFRequest_Relationships_Destination_Objects_Item defines model for WritableVRFRequest.relationships.destination.objects.Item.
type WritableVRFRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVRFRequest_Relationships_Peer_Objects_Item defines model for WritableVRFRequest.relationships.peer.objects.Item.
type WritableVRFRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVRFRequest_Relationships_Source_Objects_Item defines model for WritableVRFRequest.relationships.source.objects.Item.
type WritableVRFRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableValidatedSoftwareLCMRequest REST API serializer for ValidatedSoftwareLCM records.
type WritableValidatedSoftwareLCMRequest struct {
	CustomFields   *map[string]interface{} `json:"custom_fields,omitempty"`
	DeviceRoles    *[]openapi_types.UUID   `json:"device_roles,omitempty"`
	DeviceTypes    *[]openapi_types.UUID   `json:"device_types,omitempty"`
	Devices        *[]openapi_types.UUID   `json:"devices,omitempty"`
	End            *openapi_types.Date     `json:"end"`
	InventoryItems *[]openapi_types.UUID   `json:"inventory_items,omitempty"`
	ObjectTags     *[]openapi_types.UUID   `json:"object_tags,omitempty"`
	Preferred      *bool                   `json:"preferred,omitempty"`
	Relationships  *struct {
		Destination *struct {
			Label      *string                                                                       `json:"label,omitempty"`
			ObjectType *string                                                                       `json:"object_type,omitempty"`
			Objects    *[]WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                `json:"label,omitempty"`
			ObjectType *string                                                                `json:"object_type,omitempty"`
			Objects    *[]WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Software openapi_types.UUID           `json:"software"`
	Start    openapi_types.Date           `json:"start"`
	Tags     *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item defines model for WritableValidatedSoftwareLCMRequest.relationships.destination.objects.Item.
type WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item defines model for WritableValidatedSoftwareLCMRequest.relationships.peer.objects.Item.
type WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item defines model for WritableValidatedSoftwareLCMRequest.relationships.source.objects.Item.
type WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualChassisRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVirtualChassisRequest struct {
	CustomFields  *map[string]interface{} `json:"custom_fields,omitempty"`
	Domain        *string                 `json:"domain,omitempty"`
	Master        *openapi_types.UUID     `json:"master"`
	Name          string                  `json:"name"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                                                 `json:"label,omitempty"`
			ObjectType *string                                                                 `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualChassisRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                          `json:"label,omitempty"`
			ObjectType *string                                                          `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualChassisRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                            `json:"label,omitempty"`
			ObjectType *string                                                            `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualChassisRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Tags *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// WritableVirtualChassisRequest_Relationships_Destination_Objects_Item defines model for WritableVirtualChassisRequest.relationships.destination.objects.Item.
type WritableVirtualChassisRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualChassisRequest_Relationships_Peer_Objects_Item defines model for WritableVirtualChassisRequest.relationships.peer.objects.Item.
type WritableVirtualChassisRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualChassisRequest_Relationships_Source_Objects_Item defines model for WritableVirtualChassisRequest.relationships.source.objects.Item.
type WritableVirtualChassisRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualMachineWithConfigContextRequest Base class to use for serializers based on OrganizationalModel or PrimaryModel.
//
// Can also be used for models derived from BaseModel, so long as they support custom fields and relationships.
type WritableVirtualMachineWithConfigContextRequest struct {
	Cluster          openapi_types.UUID      `json:"cluster"`
	Comments         *string                 `json:"comments,omitempty"`
	CustomFields     *map[string]interface{} `json:"custom_fields,omitempty"`
	Disk             *int                    `json:"disk"`
	LocalContextData *map[string]interface{} `json:"local_context_data"`

	// LocalContextSchema Optional schema to validate the structure of the data
	LocalContextSchema *openapi_types.UUID `json:"local_context_schema"`
	Memory             *int                `json:"memory"`
	Name               string              `json:"name"`
	Platform           *openapi_types.UUID `json:"platform"`
	PrimaryIp4         *openapi_types.UUID `json:"primary_ip4"`
	PrimaryIp6         *openapi_types.UUID `json:"primary_ip6"`
	Relationships      *struct {
		Destination *struct {
			Label      *string                                                                                  `json:"label,omitempty"`
			ObjectType *string                                                                                  `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                                                           `json:"label,omitempty"`
			ObjectType *string                                                                           `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                                                             `json:"label,omitempty"`
			ObjectType *string                                                                             `json:"object_type,omitempty"`
			Objects    *[]WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Role   *openapi_types.UUID          `json:"role"`
	Status VirtualMachineStatusChoices  `json:"status"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
	Tenant *openapi_types.UUID          `json:"tenant"`
	Vcpus  *int                         `json:"vcpus"`
}

// WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item defines model for WritableVirtualMachineWithConfigContextRequest.relationships.destination.objects.Item.
type WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item defines model for WritableVirtualMachineWithConfigContextRequest.relationships.peer.objects.Item.
type WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item defines model for WritableVirtualMachineWithConfigContextRequest.relationships.source.objects.Item.
type WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// Zone Zone Serializer.
type Zone struct {
	CustomFieldData *map[string]interface{} `json:"_custom_field_data,omitempty"`
	Created         *openapi_types.Date     `json:"created"`
	CustomFields    *map[string]interface{} `json:"custom_fields,omitempty"`
	Description     *string                 `json:"description,omitempty"`

	// Display Human friendly display value
	Display     *string             `json:"display,omitempty"`
	Id          *openapi_types.UUID `json:"id,omitempty"`
	Interfaces  *[]NestedInterface  `json:"interfaces,omitempty"`
	LastUpdated *time.Time          `json:"last_updated"`

	// Name Name of the zone (e.g. trust)
	Name     string  `json:"name"`
	NotesUrl *string `json:"notes_url,omitempty"`
	Status   *struct {
		Label *ZoneStatusLabel `json:"label,omitempty"`
		Value *ZoneStatusValue `json:"value,omitempty"`
	} `json:"status,omitempty"`
	Tags *[]TagSerializerField `json:"tags,omitempty"`
	Url  *string               `json:"url,omitempty"`
	Vrfs *[]openapi_types.UUID `json:"vrfs,omitempty"`
}

// ZoneStatusLabel defines model for Zone.Status.Label.
type ZoneStatusLabel string

// ZoneStatusValue defines model for Zone.Status.Value.
type ZoneStatusValue string

// ZoneRequest Zone Serializer.
type ZoneRequest struct {
	CustomFieldData *map[string]interface{}   `json:"_custom_field_data,omitempty"`
	CustomFields    *map[string]interface{}   `json:"custom_fields,omitempty"`
	Description     *string                   `json:"description,omitempty"`
	Interfaces      *[]NestedInterfaceRequest `json:"interfaces,omitempty"`

	// Name Name of the zone (e.g. trust)
	Name          *string `json:"name,omitempty"`
	Relationships *struct {
		Destination *struct {
			Label      *string                                               `json:"label,omitempty"`
			ObjectType *string                                               `json:"object_type,omitempty"`
			Objects    *[]ZoneRequest_Relationships_Destination_Objects_Item `json:"objects,omitempty"`
		} `json:"destination,omitempty"`
		Id   *openapi_types.UUID `json:"id,omitempty"`
		Name *string             `json:"name,omitempty"`
		Peer *struct {
			Label      *string                                        `json:"label,omitempty"`
			ObjectType *string                                        `json:"object_type,omitempty"`
			Objects    *[]ZoneRequest_Relationships_Peer_Objects_Item `json:"objects,omitempty"`
		} `json:"peer,omitempty"`
		Source *struct {
			Label      *string                                          `json:"label,omitempty"`
			ObjectType *string                                          `json:"object_type,omitempty"`
			Objects    *[]ZoneRequest_Relationships_Source_Objects_Item `json:"objects,omitempty"`
		} `json:"source,omitempty"`
		Type *string `json:"type,omitempty"`
		Url  *string `json:"url,omitempty"`
	} `json:"relationships,omitempty"`
	Status *Status8f7Enum               `json:"status,omitempty"`
	Tags   *[]TagSerializerFieldRequest `json:"tags,omitempty"`
}

// ZoneRequest_Relationships_Destination_Objects_Item defines model for ZoneRequest.relationships.destination.objects.Item.
type ZoneRequest_Relationships_Destination_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ZoneRequest_Relationships_Peer_Objects_Item defines model for ZoneRequest.relationships.peer.objects.Item.
type ZoneRequest_Relationships_Peer_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// ZoneRequest_Relationships_Source_Objects_Item defines model for ZoneRequest.relationships.source.objects.Item.
type ZoneRequest_Relationships_Source_Objects_Item struct {
	Display              *string                `json:"display,omitempty"`
	Id                   *openapi_types.UUID    `json:"id,omitempty"`
	Url                  *string                `json:"url,omitempty"`
	AdditionalProperties map[string]interface{} `json:"-"`
}

// CircuitsCircuitTerminationsBulkDestroyJSONBody defines parameters for CircuitsCircuitTerminationsBulkDestroy.
type CircuitsCircuitTerminationsBulkDestroyJSONBody = []BulkOperationRequest

// CircuitsCircuitTerminationsListParams defines parameters for CircuitsCircuitTerminationsList.
type CircuitsCircuitTerminationsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// CircuitId Circuit
	CircuitId *[]openapi_types.UUID `form:"circuit_id,omitempty" json:"circuit_id,omitempty"`

	// CircuitIdN Circuit
	CircuitIdN *[]openapi_types.UUID `form:"circuit_id__n,omitempty" json:"circuit_id__n,omitempty"`

	// Connected Connected status (bool)
	Connected *bool                 `form:"connected,omitempty" json:"connected,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset       *int   `form:"offset,omitempty" json:"offset,omitempty"`
	PortSpeed    *[]int `form:"port_speed,omitempty" json:"port_speed,omitempty"`
	PortSpeedGt  *[]int `form:"port_speed__gt,omitempty" json:"port_speed__gt,omitempty"`
	PortSpeedGte *[]int `form:"port_speed__gte,omitempty" json:"port_speed__gte,omitempty"`
	PortSpeedLt  *[]int `form:"port_speed__lt,omitempty" json:"port_speed__lt,omitempty"`
	PortSpeedLte *[]int `form:"port_speed__lte,omitempty" json:"port_speed__lte,omitempty"`
	PortSpeedN   *[]int `form:"port_speed__n,omitempty" json:"port_speed__n,omitempty"`

	// ProviderNetworkId Provider Network (ID)
	ProviderNetworkId *[]openapi_types.UUID `form:"provider_network_id,omitempty" json:"provider_network_id,omitempty"`

	// ProviderNetworkIdN Provider Network (ID)
	ProviderNetworkIdN *[]openapi_types.UUID `form:"provider_network_id__n,omitempty" json:"provider_network_id__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN          *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	TermSide         *string               `form:"term_side,omitempty" json:"term_side,omitempty"`
	TermSideN        *string               `form:"term_side__n,omitempty" json:"term_side__n,omitempty"`
	UpstreamSpeed    *[]int                `form:"upstream_speed,omitempty" json:"upstream_speed,omitempty"`
	UpstreamSpeedGt  *[]int                `form:"upstream_speed__gt,omitempty" json:"upstream_speed__gt,omitempty"`
	UpstreamSpeedGte *[]int                `form:"upstream_speed__gte,omitempty" json:"upstream_speed__gte,omitempty"`
	UpstreamSpeedLt  *[]int                `form:"upstream_speed__lt,omitempty" json:"upstream_speed__lt,omitempty"`
	UpstreamSpeedLte *[]int                `form:"upstream_speed__lte,omitempty" json:"upstream_speed__lte,omitempty"`
	UpstreamSpeedN   *[]int                `form:"upstream_speed__n,omitempty" json:"upstream_speed__n,omitempty"`
	XconnectId       *[]string             `form:"xconnect_id,omitempty" json:"xconnect_id,omitempty"`
	XconnectIdIc     *[]string             `form:"xconnect_id__ic,omitempty" json:"xconnect_id__ic,omitempty"`
	XconnectIdIe     *[]string             `form:"xconnect_id__ie,omitempty" json:"xconnect_id__ie,omitempty"`
	XconnectIdIew    *[]string             `form:"xconnect_id__iew,omitempty" json:"xconnect_id__iew,omitempty"`
	XconnectIdIre    *[]string             `form:"xconnect_id__ire,omitempty" json:"xconnect_id__ire,omitempty"`
	XconnectIdIsw    *[]string             `form:"xconnect_id__isw,omitempty" json:"xconnect_id__isw,omitempty"`
	XconnectIdN      *[]string             `form:"xconnect_id__n,omitempty" json:"xconnect_id__n,omitempty"`
	XconnectIdNic    *[]string             `form:"xconnect_id__nic,omitempty" json:"xconnect_id__nic,omitempty"`
	XconnectIdNie    *[]string             `form:"xconnect_id__nie,omitempty" json:"xconnect_id__nie,omitempty"`
	XconnectIdNiew   *[]string             `form:"xconnect_id__niew,omitempty" json:"xconnect_id__niew,omitempty"`
	XconnectIdNire   *[]string             `form:"xconnect_id__nire,omitempty" json:"xconnect_id__nire,omitempty"`
	XconnectIdNisw   *[]string             `form:"xconnect_id__nisw,omitempty" json:"xconnect_id__nisw,omitempty"`
	XconnectIdNre    *[]string             `form:"xconnect_id__nre,omitempty" json:"xconnect_id__nre,omitempty"`
	XconnectIdRe     *[]string             `form:"xconnect_id__re,omitempty" json:"xconnect_id__re,omitempty"`
}

// CircuitsCircuitTerminationsBulkPartialUpdateJSONBody defines parameters for CircuitsCircuitTerminationsBulkPartialUpdate.
type CircuitsCircuitTerminationsBulkPartialUpdateJSONBody = []PatchedBulkWritableCircuitTerminationRequest

// CircuitsCircuitTerminationsBulkUpdateJSONBody defines parameters for CircuitsCircuitTerminationsBulkUpdate.
type CircuitsCircuitTerminationsBulkUpdateJSONBody = []BulkWritableCircuitTerminationRequest

// CircuitsCircuitTerminationsNotesListParams defines parameters for CircuitsCircuitTerminationsNotesList.
type CircuitsCircuitTerminationsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// CircuitsCircuitTypesBulkDestroyJSONBody defines parameters for CircuitsCircuitTypesBulkDestroy.
type CircuitsCircuitTypesBulkDestroyJSONBody = []BulkOperationRequest

// CircuitsCircuitTypesListParams defines parameters for CircuitsCircuitTypesList.
type CircuitsCircuitTypesListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// CircuitsCircuitTypesBulkPartialUpdateJSONBody defines parameters for CircuitsCircuitTypesBulkPartialUpdate.
type CircuitsCircuitTypesBulkPartialUpdateJSONBody = []PatchedBulkWritableCircuitTypeRequest

// CircuitsCircuitTypesBulkUpdateJSONBody defines parameters for CircuitsCircuitTypesBulkUpdate.
type CircuitsCircuitTypesBulkUpdateJSONBody = []BulkWritableCircuitTypeRequest

// CircuitsCircuitTypesNotesListParams defines parameters for CircuitsCircuitTypesNotesList.
type CircuitsCircuitTypesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// CircuitsCircuitsBulkDestroyJSONBody defines parameters for CircuitsCircuitsBulkDestroy.
type CircuitsCircuitsBulkDestroyJSONBody = []BulkOperationRequest

// CircuitsCircuitsListParams defines parameters for CircuitsCircuitsList.
type CircuitsCircuitsListParams struct {
	Cid            *[]string             `form:"cid,omitempty" json:"cid,omitempty"`
	CidIc          *[]string             `form:"cid__ic,omitempty" json:"cid__ic,omitempty"`
	CidIe          *[]string             `form:"cid__ie,omitempty" json:"cid__ie,omitempty"`
	CidIew         *[]string             `form:"cid__iew,omitempty" json:"cid__iew,omitempty"`
	CidIre         *[]string             `form:"cid__ire,omitempty" json:"cid__ire,omitempty"`
	CidIsw         *[]string             `form:"cid__isw,omitempty" json:"cid__isw,omitempty"`
	CidN           *[]string             `form:"cid__n,omitempty" json:"cid__n,omitempty"`
	CidNic         *[]string             `form:"cid__nic,omitempty" json:"cid__nic,omitempty"`
	CidNie         *[]string             `form:"cid__nie,omitempty" json:"cid__nie,omitempty"`
	CidNiew        *[]string             `form:"cid__niew,omitempty" json:"cid__niew,omitempty"`
	CidNire        *[]string             `form:"cid__nire,omitempty" json:"cid__nire,omitempty"`
	CidNisw        *[]string             `form:"cid__nisw,omitempty" json:"cid__nisw,omitempty"`
	CidNre         *[]string             `form:"cid__nre,omitempty" json:"cid__nre,omitempty"`
	CidRe          *[]string             `form:"cid__re,omitempty" json:"cid__re,omitempty"`
	CommitRate     *[]int                `form:"commit_rate,omitempty" json:"commit_rate,omitempty"`
	CommitRateGt   *[]int                `form:"commit_rate__gt,omitempty" json:"commit_rate__gt,omitempty"`
	CommitRateGte  *[]int                `form:"commit_rate__gte,omitempty" json:"commit_rate__gte,omitempty"`
	CommitRateLt   *[]int                `form:"commit_rate__lt,omitempty" json:"commit_rate__lt,omitempty"`
	CommitRateLte  *[]int                `form:"commit_rate__lte,omitempty" json:"commit_rate__lte,omitempty"`
	CommitRateN    *[]int                `form:"commit_rate__n,omitempty" json:"commit_rate__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	InstallDate    *[]openapi_types.Date `form:"install_date,omitempty" json:"install_date,omitempty"`
	InstallDateGt  *[]openapi_types.Date `form:"install_date__gt,omitempty" json:"install_date__gt,omitempty"`
	InstallDateGte *[]openapi_types.Date `form:"install_date__gte,omitempty" json:"install_date__gte,omitempty"`
	InstallDateLt  *[]openapi_types.Date `form:"install_date__lt,omitempty" json:"install_date__lt,omitempty"`
	InstallDateLte *[]openapi_types.Date `form:"install_date__lte,omitempty" json:"install_date__lte,omitempty"`
	InstallDateN   *[]openapi_types.Date `form:"install_date__n,omitempty" json:"install_date__n,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]string `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]string `form:"location__n,omitempty" json:"location__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Provider Provider (slug)
	Provider *[]string `form:"provider,omitempty" json:"provider,omitempty"`

	// ProviderN Provider (slug)
	ProviderN *[]string `form:"provider__n,omitempty" json:"provider__n,omitempty"`

	// ProviderId Provider (ID)
	ProviderId *[]openapi_types.UUID `form:"provider_id,omitempty" json:"provider_id,omitempty"`

	// ProviderIdN Provider (ID)
	ProviderIdN *[]openapi_types.UUID `form:"provider_id__n,omitempty" json:"provider_id__n,omitempty"`

	// ProviderNetworkId Provider Network (ID)
	ProviderNetworkId *[]openapi_types.UUID `form:"provider_network_id,omitempty" json:"provider_network_id,omitempty"`

	// ProviderNetworkIdN Provider Network (ID)
	ProviderNetworkIdN *[]openapi_types.UUID `form:"provider_network_id__n,omitempty" json:"provider_network_id__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// Type Circuit type (slug)
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Circuit type (slug)
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`

	// TypeId Circuit type (ID)
	TypeId *[]openapi_types.UUID `form:"type_id,omitempty" json:"type_id,omitempty"`

	// TypeIdN Circuit type (ID)
	TypeIdN *[]openapi_types.UUID `form:"type_id__n,omitempty" json:"type_id__n,omitempty"`
}

// CircuitsCircuitsBulkPartialUpdateJSONBody defines parameters for CircuitsCircuitsBulkPartialUpdate.
type CircuitsCircuitsBulkPartialUpdateJSONBody = []PatchedBulkWritableCircuitRequest

// CircuitsCircuitsBulkUpdateJSONBody defines parameters for CircuitsCircuitsBulkUpdate.
type CircuitsCircuitsBulkUpdateJSONBody = []BulkWritableCircuitRequest

// CircuitsCircuitsNotesListParams defines parameters for CircuitsCircuitsNotesList.
type CircuitsCircuitsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// CircuitsProviderNetworksBulkDestroyJSONBody defines parameters for CircuitsProviderNetworksBulkDestroy.
type CircuitsProviderNetworksBulkDestroyJSONBody = []BulkOperationRequest

// CircuitsProviderNetworksListParams defines parameters for CircuitsProviderNetworksList.
type CircuitsProviderNetworksListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Provider Provider (slug)
	Provider *[]string `form:"provider,omitempty" json:"provider,omitempty"`

	// ProviderN Provider (slug)
	ProviderN *[]string `form:"provider__n,omitempty" json:"provider__n,omitempty"`

	// ProviderId Provider (ID)
	ProviderId *[]openapi_types.UUID `form:"provider_id,omitempty" json:"provider_id,omitempty"`

	// ProviderIdN Provider (ID)
	ProviderIdN *[]openapi_types.UUID `form:"provider_id__n,omitempty" json:"provider_id__n,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Tag      *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN     *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// CircuitsProviderNetworksBulkPartialUpdateJSONBody defines parameters for CircuitsProviderNetworksBulkPartialUpdate.
type CircuitsProviderNetworksBulkPartialUpdateJSONBody = []PatchedBulkWritableProviderNetworkRequest

// CircuitsProviderNetworksBulkUpdateJSONBody defines parameters for CircuitsProviderNetworksBulkUpdate.
type CircuitsProviderNetworksBulkUpdateJSONBody = []BulkWritableProviderNetworkRequest

// CircuitsProviderNetworksNotesListParams defines parameters for CircuitsProviderNetworksNotesList.
type CircuitsProviderNetworksNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// CircuitsProvidersBulkDestroyJSONBody defines parameters for CircuitsProvidersBulkDestroy.
type CircuitsProvidersBulkDestroyJSONBody = []BulkOperationRequest

// CircuitsProvidersListParams defines parameters for CircuitsProvidersList.
type CircuitsProvidersListParams struct {
	Account        *[]string             `form:"account,omitempty" json:"account,omitempty"`
	AccountIc      *[]string             `form:"account__ic,omitempty" json:"account__ic,omitempty"`
	AccountIe      *[]string             `form:"account__ie,omitempty" json:"account__ie,omitempty"`
	AccountIew     *[]string             `form:"account__iew,omitempty" json:"account__iew,omitempty"`
	AccountIre     *[]string             `form:"account__ire,omitempty" json:"account__ire,omitempty"`
	AccountIsw     *[]string             `form:"account__isw,omitempty" json:"account__isw,omitempty"`
	AccountN       *[]string             `form:"account__n,omitempty" json:"account__n,omitempty"`
	AccountNic     *[]string             `form:"account__nic,omitempty" json:"account__nic,omitempty"`
	AccountNie     *[]string             `form:"account__nie,omitempty" json:"account__nie,omitempty"`
	AccountNiew    *[]string             `form:"account__niew,omitempty" json:"account__niew,omitempty"`
	AccountNire    *[]string             `form:"account__nire,omitempty" json:"account__nire,omitempty"`
	AccountNisw    *[]string             `form:"account__nisw,omitempty" json:"account__nisw,omitempty"`
	AccountNre     *[]string             `form:"account__nre,omitempty" json:"account__nre,omitempty"`
	AccountRe      *[]string             `form:"account__re,omitempty" json:"account__re,omitempty"`
	Asn            *[]int                `form:"asn,omitempty" json:"asn,omitempty"`
	AsnGt          *[]int                `form:"asn__gt,omitempty" json:"asn__gt,omitempty"`
	AsnGte         *[]int                `form:"asn__gte,omitempty" json:"asn__gte,omitempty"`
	AsnLt          *[]int                `form:"asn__lt,omitempty" json:"asn__lt,omitempty"`
	AsnLte         *[]int                `form:"asn__lte,omitempty" json:"asn__lte,omitempty"`
	AsnN           *[]int                `form:"asn__n,omitempty" json:"asn__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]string `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]string `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site
	SiteIdN  *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Tag      *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN     *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// CircuitsProvidersBulkPartialUpdateJSONBody defines parameters for CircuitsProvidersBulkPartialUpdate.
type CircuitsProvidersBulkPartialUpdateJSONBody = []PatchedBulkWritableProviderRequest

// CircuitsProvidersBulkUpdateJSONBody defines parameters for CircuitsProvidersBulkUpdate.
type CircuitsProvidersBulkUpdateJSONBody = []BulkWritableProviderRequest

// CircuitsProvidersNotesListParams defines parameters for CircuitsProvidersNotesList.
type CircuitsProvidersNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimCablesBulkDestroyJSONBody defines parameters for DcimCablesBulkDestroy.
type DcimCablesBulkDestroyJSONBody = []BulkOperationRequest

// DcimCablesListParams defines parameters for DcimCablesList.
type DcimCablesListParams struct {
	Color      *[]string           `form:"color,omitempty" json:"color,omitempty"`
	ColorIc    *[]string           `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe    *[]string           `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew   *[]string           `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre   *[]string           `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw   *[]string           `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN     *[]string           `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic   *[]string           `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie   *[]string           `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew  *[]string           `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire  *[]string           `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw  *[]string           `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre   *[]string           `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe    *[]string           `form:"color__re,omitempty" json:"color__re,omitempty"`
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId       *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label          *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc        *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe        *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew       *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre       *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw       *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN         *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic       *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie       *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew      *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire      *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw      *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre       *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe        *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`
	Length         *[]int                `form:"length,omitempty" json:"length,omitempty"`
	LengthGt       *[]int                `form:"length__gt,omitempty" json:"length__gt,omitempty"`
	LengthGte      *[]int                `form:"length__gte,omitempty" json:"length__gte,omitempty"`
	LengthLt       *[]int                `form:"length__lt,omitempty" json:"length__lt,omitempty"`
	LengthLte      *[]int                `form:"length__lte,omitempty" json:"length__lte,omitempty"`
	LengthN        *[]int                `form:"length__n,omitempty" json:"length__n,omitempty"`
	LengthUnit     *string               `form:"length_unit,omitempty" json:"length_unit,omitempty"`
	LengthUnitN    *string               `form:"length_unit__n,omitempty" json:"length_unit__n,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rack Rack (name)
	Rack *[]string `form:"rack,omitempty" json:"rack,omitempty"`

	// RackId Rack (ID)
	RackId *[]openapi_types.UUID `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// Region Region (name)
	Region *[]string `form:"region,omitempty" json:"region,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// Site Site (name)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteId Site (ID)
	SiteId  *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (name)
	Tenant *[]string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantId Tenant (ID)
	TenantId           *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`
	TerminationAId     *[]openapi_types.UUID `form:"termination_a_id,omitempty" json:"termination_a_id,omitempty"`
	TerminationAIdIc   *[]openapi_types.UUID `form:"termination_a_id__ic,omitempty" json:"termination_a_id__ic,omitempty"`
	TerminationAIdIe   *[]openapi_types.UUID `form:"termination_a_id__ie,omitempty" json:"termination_a_id__ie,omitempty"`
	TerminationAIdIew  *[]openapi_types.UUID `form:"termination_a_id__iew,omitempty" json:"termination_a_id__iew,omitempty"`
	TerminationAIdIre  *[]openapi_types.UUID `form:"termination_a_id__ire,omitempty" json:"termination_a_id__ire,omitempty"`
	TerminationAIdIsw  *[]openapi_types.UUID `form:"termination_a_id__isw,omitempty" json:"termination_a_id__isw,omitempty"`
	TerminationAIdN    *[]openapi_types.UUID `form:"termination_a_id__n,omitempty" json:"termination_a_id__n,omitempty"`
	TerminationAIdNic  *[]openapi_types.UUID `form:"termination_a_id__nic,omitempty" json:"termination_a_id__nic,omitempty"`
	TerminationAIdNie  *[]openapi_types.UUID `form:"termination_a_id__nie,omitempty" json:"termination_a_id__nie,omitempty"`
	TerminationAIdNiew *[]openapi_types.UUID `form:"termination_a_id__niew,omitempty" json:"termination_a_id__niew,omitempty"`
	TerminationAIdNire *[]openapi_types.UUID `form:"termination_a_id__nire,omitempty" json:"termination_a_id__nire,omitempty"`
	TerminationAIdNisw *[]openapi_types.UUID `form:"termination_a_id__nisw,omitempty" json:"termination_a_id__nisw,omitempty"`
	TerminationAIdNre  *[]openapi_types.UUID `form:"termination_a_id__nre,omitempty" json:"termination_a_id__nre,omitempty"`
	TerminationAIdRe   *[]openapi_types.UUID `form:"termination_a_id__re,omitempty" json:"termination_a_id__re,omitempty"`
	TerminationAType   *[]int                `form:"termination_a_type,omitempty" json:"termination_a_type,omitempty"`
	TerminationATypeN  *[]int                `form:"termination_a_type__n,omitempty" json:"termination_a_type__n,omitempty"`
	TerminationBId     *[]openapi_types.UUID `form:"termination_b_id,omitempty" json:"termination_b_id,omitempty"`
	TerminationBIdIc   *[]openapi_types.UUID `form:"termination_b_id__ic,omitempty" json:"termination_b_id__ic,omitempty"`
	TerminationBIdIe   *[]openapi_types.UUID `form:"termination_b_id__ie,omitempty" json:"termination_b_id__ie,omitempty"`
	TerminationBIdIew  *[]openapi_types.UUID `form:"termination_b_id__iew,omitempty" json:"termination_b_id__iew,omitempty"`
	TerminationBIdIre  *[]openapi_types.UUID `form:"termination_b_id__ire,omitempty" json:"termination_b_id__ire,omitempty"`
	TerminationBIdIsw  *[]openapi_types.UUID `form:"termination_b_id__isw,omitempty" json:"termination_b_id__isw,omitempty"`
	TerminationBIdN    *[]openapi_types.UUID `form:"termination_b_id__n,omitempty" json:"termination_b_id__n,omitempty"`
	TerminationBIdNic  *[]openapi_types.UUID `form:"termination_b_id__nic,omitempty" json:"termination_b_id__nic,omitempty"`
	TerminationBIdNie  *[]openapi_types.UUID `form:"termination_b_id__nie,omitempty" json:"termination_b_id__nie,omitempty"`
	TerminationBIdNiew *[]openapi_types.UUID `form:"termination_b_id__niew,omitempty" json:"termination_b_id__niew,omitempty"`
	TerminationBIdNire *[]openapi_types.UUID `form:"termination_b_id__nire,omitempty" json:"termination_b_id__nire,omitempty"`
	TerminationBIdNisw *[]openapi_types.UUID `form:"termination_b_id__nisw,omitempty" json:"termination_b_id__nisw,omitempty"`
	TerminationBIdNre  *[]openapi_types.UUID `form:"termination_b_id__nre,omitempty" json:"termination_b_id__nre,omitempty"`
	TerminationBIdRe   *[]openapi_types.UUID `form:"termination_b_id__re,omitempty" json:"termination_b_id__re,omitempty"`
	TerminationBType   *[]int                `form:"termination_b_type,omitempty" json:"termination_b_type,omitempty"`
	TerminationBTypeN  *[]int                `form:"termination_b_type__n,omitempty" json:"termination_b_type__n,omitempty"`
	Type               *[]string             `form:"type,omitempty" json:"type,omitempty"`
	TypeN              *[]string             `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimCablesBulkPartialUpdateJSONBody defines parameters for DcimCablesBulkPartialUpdate.
type DcimCablesBulkPartialUpdateJSONBody = []PatchedBulkWritableCableRequest

// DcimCablesBulkUpdateJSONBody defines parameters for DcimCablesBulkUpdate.
type DcimCablesBulkUpdateJSONBody = []BulkWritableCableRequest

// DcimCablesNotesListParams defines parameters for DcimCablesNotesList.
type DcimCablesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimConnectedDeviceListParams defines parameters for DcimConnectedDeviceList.
type DcimConnectedDeviceListParams struct {
	// PeerDevice The name of the peer device
	PeerDevice string `form:"peer_device" json:"peer_device"`

	// PeerInterface The name of the peer interface
	PeerInterface string `form:"peer_interface" json:"peer_interface"`
}

// DcimConsoleConnectionsListParams defines parameters for DcimConsoleConnectionsList.
type DcimConsoleConnectionsListParams struct {
	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Site Site (slug)
	Site *string `form:"site,omitempty" json:"site,omitempty"`
}

// DcimConsolePortTemplatesBulkDestroyJSONBody defines parameters for DcimConsolePortTemplatesBulkDestroy.
type DcimConsolePortTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimConsolePortTemplatesListParams defines parameters for DcimConsolePortTemplatesList.
type DcimConsolePortTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimConsolePortTemplatesBulkPartialUpdateJSONBody defines parameters for DcimConsolePortTemplatesBulkPartialUpdate.
type DcimConsolePortTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableConsolePortTemplateRequest

// DcimConsolePortTemplatesBulkUpdateJSONBody defines parameters for DcimConsolePortTemplatesBulkUpdate.
type DcimConsolePortTemplatesBulkUpdateJSONBody = []BulkWritableConsolePortTemplateRequest

// DcimConsolePortTemplatesNotesListParams defines parameters for DcimConsolePortTemplatesNotesList.
type DcimConsolePortTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimConsolePortsBulkDestroyJSONBody defines parameters for DcimConsolePortsBulkDestroy.
type DcimConsolePortsBulkDestroyJSONBody = []BulkOperationRequest

// DcimConsolePortsListParams defines parameters for DcimConsolePortsList.
type DcimConsolePortsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// Connected Connected status (bool)
	Connected       *bool     `form:"connected,omitempty" json:"connected,omitempty"`
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label     *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc   *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe   *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew  *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre  *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw  *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN    *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic  *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie  *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre  *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe   *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Type Physical port type
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Physical port type
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimConsolePortsBulkPartialUpdateJSONBody defines parameters for DcimConsolePortsBulkPartialUpdate.
type DcimConsolePortsBulkPartialUpdateJSONBody = []PatchedBulkWritableConsolePortRequest

// DcimConsolePortsBulkUpdateJSONBody defines parameters for DcimConsolePortsBulkUpdate.
type DcimConsolePortsBulkUpdateJSONBody = []BulkWritableConsolePortRequest

// DcimConsolePortsNotesListParams defines parameters for DcimConsolePortsNotesList.
type DcimConsolePortsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimConsoleServerPortTemplatesBulkDestroyJSONBody defines parameters for DcimConsoleServerPortTemplatesBulkDestroy.
type DcimConsoleServerPortTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimConsoleServerPortTemplatesListParams defines parameters for DcimConsoleServerPortTemplatesList.
type DcimConsoleServerPortTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimConsoleServerPortTemplatesBulkPartialUpdateJSONBody defines parameters for DcimConsoleServerPortTemplatesBulkPartialUpdate.
type DcimConsoleServerPortTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableConsoleServerPortTemplateRequest

// DcimConsoleServerPortTemplatesBulkUpdateJSONBody defines parameters for DcimConsoleServerPortTemplatesBulkUpdate.
type DcimConsoleServerPortTemplatesBulkUpdateJSONBody = []BulkWritableConsoleServerPortTemplateRequest

// DcimConsoleServerPortTemplatesNotesListParams defines parameters for DcimConsoleServerPortTemplatesNotesList.
type DcimConsoleServerPortTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimConsoleServerPortsBulkDestroyJSONBody defines parameters for DcimConsoleServerPortsBulkDestroy.
type DcimConsoleServerPortsBulkDestroyJSONBody = []BulkOperationRequest

// DcimConsoleServerPortsListParams defines parameters for DcimConsoleServerPortsList.
type DcimConsoleServerPortsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// Connected Connected status (bool)
	Connected       *bool     `form:"connected,omitempty" json:"connected,omitempty"`
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label     *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc   *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe   *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew  *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre  *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw  *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN    *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic  *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie  *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre  *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe   *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Type Physical port type
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Physical port type
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimConsoleServerPortsBulkPartialUpdateJSONBody defines parameters for DcimConsoleServerPortsBulkPartialUpdate.
type DcimConsoleServerPortsBulkPartialUpdateJSONBody = []PatchedBulkWritableConsoleServerPortRequest

// DcimConsoleServerPortsBulkUpdateJSONBody defines parameters for DcimConsoleServerPortsBulkUpdate.
type DcimConsoleServerPortsBulkUpdateJSONBody = []BulkWritableConsoleServerPortRequest

// DcimConsoleServerPortsNotesListParams defines parameters for DcimConsoleServerPortsNotesList.
type DcimConsoleServerPortsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDeviceBayTemplatesBulkDestroyJSONBody defines parameters for DcimDeviceBayTemplatesBulkDestroy.
type DcimDeviceBayTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimDeviceBayTemplatesListParams defines parameters for DcimDeviceBayTemplatesList.
type DcimDeviceBayTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// DcimDeviceBayTemplatesBulkPartialUpdateJSONBody defines parameters for DcimDeviceBayTemplatesBulkPartialUpdate.
type DcimDeviceBayTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceBayTemplateRequest

// DcimDeviceBayTemplatesBulkUpdateJSONBody defines parameters for DcimDeviceBayTemplatesBulkUpdate.
type DcimDeviceBayTemplatesBulkUpdateJSONBody = []BulkWritableDeviceBayTemplateRequest

// DcimDeviceBayTemplatesNotesListParams defines parameters for DcimDeviceBayTemplatesNotesList.
type DcimDeviceBayTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDeviceBaysBulkDestroyJSONBody defines parameters for DcimDeviceBaysBulkDestroy.
type DcimDeviceBaysBulkDestroyJSONBody = []BulkOperationRequest

// DcimDeviceBaysListParams defines parameters for DcimDeviceBaysList.
type DcimDeviceBaysListParams struct {
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// InstalledDevice Installed device (name or ID)
	InstalledDevice *[]openapi_types.UUID `form:"installed_device,omitempty" json:"installed_device,omitempty"`

	// InstalledDeviceN Installed device (name or ID)
	InstalledDeviceN *[]openapi_types.UUID `form:"installed_device__n,omitempty" json:"installed_device__n,omitempty"`
	Label            *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc          *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe          *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew         *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre         *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw         *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN           *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic         *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie         *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew        *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire        *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw        *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre         *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe          *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// DcimDeviceBaysBulkPartialUpdateJSONBody defines parameters for DcimDeviceBaysBulkPartialUpdate.
type DcimDeviceBaysBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceBayRequest

// DcimDeviceBaysBulkUpdateJSONBody defines parameters for DcimDeviceBaysBulkUpdate.
type DcimDeviceBaysBulkUpdateJSONBody = []BulkWritableDeviceBayRequest

// DcimDeviceBaysNotesListParams defines parameters for DcimDeviceBaysNotesList.
type DcimDeviceBaysNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDeviceRedundancyGroupsBulkDestroyJSONBody defines parameters for DcimDeviceRedundancyGroupsBulkDestroy.
type DcimDeviceRedundancyGroupsBulkDestroyJSONBody = []BulkOperationRequest

// DcimDeviceRedundancyGroupsListParams defines parameters for DcimDeviceRedundancyGroupsList.
type DcimDeviceRedundancyGroupsListParams struct {
	Created           *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte        *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte        *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	FailoverStrategy  *string               `form:"failover_strategy,omitempty" json:"failover_strategy,omitempty"`
	FailoverStrategyN *string               `form:"failover_strategy__n,omitempty" json:"failover_strategy__n,omitempty"`
	Id                *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc              *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe              *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew             *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre             *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw             *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN               *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic             *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie             *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew            *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire            *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw            *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre             *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe              *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated       *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte    *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte    *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// SecretsGroup Secrets group
	SecretsGroup *[]openapi_types.UUID `form:"secrets_group,omitempty" json:"secrets_group,omitempty"`

	// SecretsGroupN Secrets group
	SecretsGroupN *[]openapi_types.UUID `form:"secrets_group__n,omitempty" json:"secrets_group__n,omitempty"`
	Slug          *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc        *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe        *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew       *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre       *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw       *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN         *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic       *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie       *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew      *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire      *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw      *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre       *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe        *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Status        *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN       *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag           *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN          *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// DcimDeviceRedundancyGroupsBulkPartialUpdateJSONBody defines parameters for DcimDeviceRedundancyGroupsBulkPartialUpdate.
type DcimDeviceRedundancyGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceRedundancyGroupRequest

// DcimDeviceRedundancyGroupsBulkUpdateJSONBody defines parameters for DcimDeviceRedundancyGroupsBulkUpdate.
type DcimDeviceRedundancyGroupsBulkUpdateJSONBody = []BulkWritableDeviceRedundancyGroupRequest

// DcimDeviceRedundancyGroupsNotesListParams defines parameters for DcimDeviceRedundancyGroupsNotesList.
type DcimDeviceRedundancyGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDeviceRolesBulkDestroyJSONBody defines parameters for DcimDeviceRolesBulkDestroy.
type DcimDeviceRolesBulkDestroyJSONBody = []BulkOperationRequest

// DcimDeviceRolesListParams defines parameters for DcimDeviceRolesList.
type DcimDeviceRolesListParams struct {
	Color           *[]string             `form:"color,omitempty" json:"color,omitempty"`
	ColorIc         *[]string             `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe         *[]string             `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew        *[]string             `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre        *[]string             `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw        *[]string             `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN          *[]string             `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic        *[]string             `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie        *[]string             `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew       *[]string             `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire       *[]string             `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw       *[]string             `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre        *[]string             `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe         *[]string             `form:"color__re,omitempty" json:"color__re,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Devices         *[]openapi_types.UUID `form:"devices,omitempty" json:"devices,omitempty"`
	DevicesN        *[]openapi_types.UUID `form:"devices__n,omitempty" json:"devices__n,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasVirtualMachines Has virtual machines
	HasVirtualMachines *bool                 `form:"has_virtual_machines,omitempty" json:"has_virtual_machines,omitempty"`
	Id                 *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc               *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe               *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew              *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre              *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw              *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic              *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie              *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew             *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire             *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw             *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre              *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe               *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated        *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte     *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte     *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                *string               `form:"q,omitempty" json:"q,omitempty"`
	Slug             *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc           *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe           *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew          *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre          *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw          *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN            *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic          *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie          *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew         *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire         *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw         *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre          *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe           *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	VirtualMachines  *[]openapi_types.UUID `form:"virtual_machines,omitempty" json:"virtual_machines,omitempty"`
	VirtualMachinesN *[]openapi_types.UUID `form:"virtual_machines__n,omitempty" json:"virtual_machines__n,omitempty"`
	VmRole           *bool                 `form:"vm_role,omitempty" json:"vm_role,omitempty"`
}

// DcimDeviceRolesBulkPartialUpdateJSONBody defines parameters for DcimDeviceRolesBulkPartialUpdate.
type DcimDeviceRolesBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceRoleRequest

// DcimDeviceRolesBulkUpdateJSONBody defines parameters for DcimDeviceRolesBulkUpdate.
type DcimDeviceRolesBulkUpdateJSONBody = []BulkWritableDeviceRoleRequest

// DcimDeviceRolesNotesListParams defines parameters for DcimDeviceRolesNotesList.
type DcimDeviceRolesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDeviceTypesBulkDestroyJSONBody defines parameters for DcimDeviceTypesBulkDestroy.
type DcimDeviceTypesBulkDestroyJSONBody = []BulkOperationRequest

// DcimDeviceTypesListParams defines parameters for DcimDeviceTypesList.
type DcimDeviceTypesListParams struct {
	Comments     *[]string `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc   *[]string `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe   *[]string `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew  *[]string `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre  *[]string `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw  *[]string `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN    *[]string `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic  *[]string `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie  *[]string `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew *[]string `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire *[]string `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw *[]string `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre  *[]string `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe   *[]string `form:"comments__re,omitempty" json:"comments__re,omitempty"`

	// ConsolePortTemplates Console port templates (name or ID)
	ConsolePortTemplates *[]openapi_types.UUID `form:"console_port_templates,omitempty" json:"console_port_templates,omitempty"`

	// ConsolePortTemplatesN Console port templates (name or ID)
	ConsolePortTemplatesN *[]openapi_types.UUID `form:"console_port_templates__n,omitempty" json:"console_port_templates__n,omitempty"`

	// ConsolePorts Has console ports
	ConsolePorts *bool `form:"console_ports,omitempty" json:"console_ports,omitempty"`

	// ConsoleServerPortTemplates Console server port templates (name or ID)
	ConsoleServerPortTemplates *[]openapi_types.UUID `form:"console_server_port_templates,omitempty" json:"console_server_port_templates,omitempty"`

	// ConsoleServerPortTemplatesN Console server port templates (name or ID)
	ConsoleServerPortTemplatesN *[]openapi_types.UUID `form:"console_server_port_templates__n,omitempty" json:"console_server_port_templates__n,omitempty"`

	// ConsoleServerPorts Has console server ports
	ConsoleServerPorts *bool               `form:"console_server_ports,omitempty" json:"console_server_ports,omitempty"`
	Created            *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte         *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte         *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// DeviceBayTemplates Device bay templates
	DeviceBayTemplates *[]openapi_types.UUID `form:"device_bay_templates,omitempty" json:"device_bay_templates,omitempty"`

	// DeviceBayTemplatesN Device bay templates
	DeviceBayTemplatesN *[]openapi_types.UUID `form:"device_bay_templates__n,omitempty" json:"device_bay_templates__n,omitempty"`

	// DeviceBays Has device bays
	DeviceBays *bool `form:"device_bays,omitempty" json:"device_bays,omitempty"`

	// FrontPortTemplates Front port templates (name or ID)
	FrontPortTemplates *[]openapi_types.UUID `form:"front_port_templates,omitempty" json:"front_port_templates,omitempty"`

	// FrontPortTemplatesN Front port templates (name or ID)
	FrontPortTemplatesN *[]openapi_types.UUID `form:"front_port_templates__n,omitempty" json:"front_port_templates__n,omitempty"`

	// HasConsolePortTemplates Has console port templates
	HasConsolePortTemplates *bool `form:"has_console_port_templates,omitempty" json:"has_console_port_templates,omitempty"`

	// HasConsoleServerPortTemplates Has console server port templates
	HasConsoleServerPortTemplates *bool `form:"has_console_server_port_templates,omitempty" json:"has_console_server_port_templates,omitempty"`

	// HasDeviceBayTemplates Has device bay templates
	HasDeviceBayTemplates *bool `form:"has_device_bay_templates,omitempty" json:"has_device_bay_templates,omitempty"`

	// HasFrontPortTemplates Has front port templates
	HasFrontPortTemplates *bool `form:"has_front_port_templates,omitempty" json:"has_front_port_templates,omitempty"`

	// HasInstances Has instances
	HasInstances *bool `form:"has_instances,omitempty" json:"has_instances,omitempty"`

	// HasInterfaceTemplates Has interface templates
	HasInterfaceTemplates *bool `form:"has_interface_templates,omitempty" json:"has_interface_templates,omitempty"`

	// HasPowerOutletTemplates Has power outlet templates
	HasPowerOutletTemplates *bool `form:"has_power_outlet_templates,omitempty" json:"has_power_outlet_templates,omitempty"`

	// HasPowerPortTemplates Has power port templates
	HasPowerPortTemplates *bool `form:"has_power_port_templates,omitempty" json:"has_power_port_templates,omitempty"`

	// HasRearPortTemplates Has rear port templates
	HasRearPortTemplates *bool                 `form:"has_rear_port_templates,omitempty" json:"has_rear_port_templates,omitempty"`
	Id                   *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                 *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                 *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                  *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew               *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire               *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw               *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                 *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Instances            *[]openapi_types.UUID `form:"instances,omitempty" json:"instances,omitempty"`
	InstancesN           *[]openapi_types.UUID `form:"instances__n,omitempty" json:"instances__n,omitempty"`

	// InterfaceTemplates Interface templates (name or ID)
	InterfaceTemplates *[]openapi_types.UUID `form:"interface_templates,omitempty" json:"interface_templates,omitempty"`

	// InterfaceTemplatesN Interface templates (name or ID)
	InterfaceTemplatesN *[]openapi_types.UUID `form:"interface_templates__n,omitempty" json:"interface_templates__n,omitempty"`

	// Interfaces Has interfaces
	Interfaces     *bool      `form:"interfaces,omitempty" json:"interfaces,omitempty"`
	IsFullDepth    *bool      `form:"is_full_depth,omitempty" json:"is_full_depth,omitempty"`
	LastUpdated    *time.Time `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *[]string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerN Manufacturer (slug)
	ManufacturerN *[]string `form:"manufacturer__n,omitempty" json:"manufacturer__n,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *[]openapi_types.UUID `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// ManufacturerIdN Manufacturer (ID)
	ManufacturerIdN *[]openapi_types.UUID `form:"manufacturer_id__n,omitempty" json:"manufacturer_id__n,omitempty"`
	Model           *[]string             `form:"model,omitempty" json:"model,omitempty"`
	ModelIc         *[]string             `form:"model__ic,omitempty" json:"model__ic,omitempty"`
	ModelIe         *[]string             `form:"model__ie,omitempty" json:"model__ie,omitempty"`
	ModelIew        *[]string             `form:"model__iew,omitempty" json:"model__iew,omitempty"`
	ModelIre        *[]string             `form:"model__ire,omitempty" json:"model__ire,omitempty"`
	ModelIsw        *[]string             `form:"model__isw,omitempty" json:"model__isw,omitempty"`
	ModelN          *[]string             `form:"model__n,omitempty" json:"model__n,omitempty"`
	ModelNic        *[]string             `form:"model__nic,omitempty" json:"model__nic,omitempty"`
	ModelNie        *[]string             `form:"model__nie,omitempty" json:"model__nie,omitempty"`
	ModelNiew       *[]string             `form:"model__niew,omitempty" json:"model__niew,omitempty"`
	ModelNire       *[]string             `form:"model__nire,omitempty" json:"model__nire,omitempty"`
	ModelNisw       *[]string             `form:"model__nisw,omitempty" json:"model__nisw,omitempty"`
	ModelNre        *[]string             `form:"model__nre,omitempty" json:"model__nre,omitempty"`
	ModelRe         *[]string             `form:"model__re,omitempty" json:"model__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset         *int      `form:"offset,omitempty" json:"offset,omitempty"`
	PartNumber     *[]string `form:"part_number,omitempty" json:"part_number,omitempty"`
	PartNumberIc   *[]string `form:"part_number__ic,omitempty" json:"part_number__ic,omitempty"`
	PartNumberIe   *[]string `form:"part_number__ie,omitempty" json:"part_number__ie,omitempty"`
	PartNumberIew  *[]string `form:"part_number__iew,omitempty" json:"part_number__iew,omitempty"`
	PartNumberIre  *[]string `form:"part_number__ire,omitempty" json:"part_number__ire,omitempty"`
	PartNumberIsw  *[]string `form:"part_number__isw,omitempty" json:"part_number__isw,omitempty"`
	PartNumberN    *[]string `form:"part_number__n,omitempty" json:"part_number__n,omitempty"`
	PartNumberNic  *[]string `form:"part_number__nic,omitempty" json:"part_number__nic,omitempty"`
	PartNumberNie  *[]string `form:"part_number__nie,omitempty" json:"part_number__nie,omitempty"`
	PartNumberNiew *[]string `form:"part_number__niew,omitempty" json:"part_number__niew,omitempty"`
	PartNumberNire *[]string `form:"part_number__nire,omitempty" json:"part_number__nire,omitempty"`
	PartNumberNisw *[]string `form:"part_number__nisw,omitempty" json:"part_number__nisw,omitempty"`
	PartNumberNre  *[]string `form:"part_number__nre,omitempty" json:"part_number__nre,omitempty"`
	PartNumberRe   *[]string `form:"part_number__re,omitempty" json:"part_number__re,omitempty"`

	// PassThroughPorts Has pass-through ports
	PassThroughPorts *bool `form:"pass_through_ports,omitempty" json:"pass_through_ports,omitempty"`

	// PowerOutletTemplates Power outlet templates (name or ID)
	PowerOutletTemplates *[]openapi_types.UUID `form:"power_outlet_templates,omitempty" json:"power_outlet_templates,omitempty"`

	// PowerOutletTemplatesN Power outlet templates (name or ID)
	PowerOutletTemplatesN *[]openapi_types.UUID `form:"power_outlet_templates__n,omitempty" json:"power_outlet_templates__n,omitempty"`

	// PowerOutlets Has power outlets
	PowerOutlets *bool `form:"power_outlets,omitempty" json:"power_outlets,omitempty"`

	// PowerPortTemplates Power port templates (name or ID)
	PowerPortTemplates *[]openapi_types.UUID `form:"power_port_templates,omitempty" json:"power_port_templates,omitempty"`

	// PowerPortTemplatesN Power port templates (name or ID)
	PowerPortTemplatesN *[]openapi_types.UUID `form:"power_port_templates__n,omitempty" json:"power_port_templates__n,omitempty"`

	// PowerPorts Has power ports
	PowerPorts *bool `form:"power_ports,omitempty" json:"power_ports,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// RearPortTemplates Rear port templates (name or ID)
	RearPortTemplates *[]openapi_types.UUID `form:"rear_port_templates,omitempty" json:"rear_port_templates,omitempty"`

	// RearPortTemplatesN Rear port templates (name or ID)
	RearPortTemplatesN *[]openapi_types.UUID `form:"rear_port_templates__n,omitempty" json:"rear_port_templates__n,omitempty"`
	Slug               *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc             *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe             *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew            *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre            *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw            *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN              *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic            *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie            *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew           *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire           *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw           *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre            *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe             *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`

	// SubdeviceRole Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
	SubdeviceRole *string `form:"subdevice_role,omitempty" json:"subdevice_role,omitempty"`

	// SubdeviceRoleN Parent devices house child devices in device bays. Leave blank if this device type is neither a parent nor a child.
	SubdeviceRoleN *string   `form:"subdevice_role__n,omitempty" json:"subdevice_role__n,omitempty"`
	Tag            *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN           *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
	UHeight        *[]int    `form:"u_height,omitempty" json:"u_height,omitempty"`
	UHeightGt      *[]int    `form:"u_height__gt,omitempty" json:"u_height__gt,omitempty"`
	UHeightGte     *[]int    `form:"u_height__gte,omitempty" json:"u_height__gte,omitempty"`
	UHeightLt      *[]int    `form:"u_height__lt,omitempty" json:"u_height__lt,omitempty"`
	UHeightLte     *[]int    `form:"u_height__lte,omitempty" json:"u_height__lte,omitempty"`
	UHeightN       *[]int    `form:"u_height__n,omitempty" json:"u_height__n,omitempty"`
}

// DcimDeviceTypesBulkPartialUpdateJSONBody defines parameters for DcimDeviceTypesBulkPartialUpdate.
type DcimDeviceTypesBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceTypeRequest

// DcimDeviceTypesBulkUpdateJSONBody defines parameters for DcimDeviceTypesBulkUpdate.
type DcimDeviceTypesBulkUpdateJSONBody = []BulkWritableDeviceTypeRequest

// DcimDeviceTypesNotesListParams defines parameters for DcimDeviceTypesNotesList.
type DcimDeviceTypesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimDevicesBulkDestroyJSONBody defines parameters for DcimDevicesBulkDestroy.
type DcimDevicesBulkDestroyJSONBody = []BulkOperationRequest

// DcimDevicesListParams defines parameters for DcimDevicesList.
type DcimDevicesListParams struct {
	// AssetTag asset_tag
	AssetTag *string `form:"asset_tag,omitempty" json:"asset_tag,omitempty"`

	// AssetTagIc asset_tag__ic
	AssetTagIc *string `form:"asset_tag__ic,omitempty" json:"asset_tag__ic,omitempty"`

	// AssetTagIe asset_tag__ie
	AssetTagIe *string `form:"asset_tag__ie,omitempty" json:"asset_tag__ie,omitempty"`

	// AssetTagIew asset_tag__iew
	AssetTagIew *string `form:"asset_tag__iew,omitempty" json:"asset_tag__iew,omitempty"`

	// AssetTagIre asset_tag__ire
	AssetTagIre *string `form:"asset_tag__ire,omitempty" json:"asset_tag__ire,omitempty"`

	// AssetTagIsw asset_tag__isw
	AssetTagIsw *string `form:"asset_tag__isw,omitempty" json:"asset_tag__isw,omitempty"`

	// AssetTagN asset_tag__n
	AssetTagN *string `form:"asset_tag__n,omitempty" json:"asset_tag__n,omitempty"`

	// AssetTagNic asset_tag__nic
	AssetTagNic *string `form:"asset_tag__nic,omitempty" json:"asset_tag__nic,omitempty"`

	// AssetTagNie asset_tag__nie
	AssetTagNie *string `form:"asset_tag__nie,omitempty" json:"asset_tag__nie,omitempty"`

	// AssetTagNiew asset_tag__niew
	AssetTagNiew *string `form:"asset_tag__niew,omitempty" json:"asset_tag__niew,omitempty"`

	// AssetTagNire asset_tag__nire
	AssetTagNire *string `form:"asset_tag__nire,omitempty" json:"asset_tag__nire,omitempty"`

	// AssetTagNisw asset_tag__nisw
	AssetTagNisw *string `form:"asset_tag__nisw,omitempty" json:"asset_tag__nisw,omitempty"`

	// AssetTagNre asset_tag__nre
	AssetTagNre *string `form:"asset_tag__nre,omitempty" json:"asset_tag__nre,omitempty"`

	// AssetTagRe asset_tag__re
	AssetTagRe *string `form:"asset_tag__re,omitempty" json:"asset_tag__re,omitempty"`

	// ClusterId VM cluster (ID)
	ClusterId *string `form:"cluster_id,omitempty" json:"cluster_id,omitempty"`

	// ClusterIdN VM cluster (ID)
	ClusterIdN *string `form:"cluster_id__n,omitempty" json:"cluster_id__n,omitempty"`

	// ConsolePorts Has console ports
	ConsolePorts *string `form:"console_ports,omitempty" json:"console_ports,omitempty"`

	// ConsoleServerPorts Has console server ports
	ConsoleServerPorts *string `form:"console_server_ports,omitempty" json:"console_server_ports,omitempty"`

	// Created created
	Created *string `form:"created,omitempty" json:"created,omitempty"`

	// CreatedGte created__gte
	CreatedGte *string `form:"created__gte,omitempty" json:"created__gte,omitempty"`

	// CreatedLte created__lte
	CreatedLte *string `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// DeviceBays Has device bays
	DeviceBays *string `form:"device_bays,omitempty" json:"device_bays,omitempty"`

	// DeviceRedundancyGroup Device Redundancy Groups (slug or ID)
	DeviceRedundancyGroup *string `form:"device_redundancy_group,omitempty" json:"device_redundancy_group,omitempty"`

	// DeviceRedundancyGroupN Device Redundancy Groups (slug or ID)
	DeviceRedundancyGroupN *string `form:"device_redundancy_group__n,omitempty" json:"device_redundancy_group__n,omitempty"`

	// DeviceRedundancyGroupPriority device_redundancy_group_priority
	DeviceRedundancyGroupPriority *string `form:"device_redundancy_group_priority,omitempty" json:"device_redundancy_group_priority,omitempty"`

	// DeviceRedundancyGroupPriorityGt device_redundancy_group_priority__gt
	DeviceRedundancyGroupPriorityGt *string `form:"device_redundancy_group_priority__gt,omitempty" json:"device_redundancy_group_priority__gt,omitempty"`

	// DeviceRedundancyGroupPriorityGte device_redundancy_group_priority__gte
	DeviceRedundancyGroupPriorityGte *string `form:"device_redundancy_group_priority__gte,omitempty" json:"device_redundancy_group_priority__gte,omitempty"`

	// DeviceRedundancyGroupPriorityLt device_redundancy_group_priority__lt
	DeviceRedundancyGroupPriorityLt *string `form:"device_redundancy_group_priority__lt,omitempty" json:"device_redundancy_group_priority__lt,omitempty"`

	// DeviceRedundancyGroupPriorityLte device_redundancy_group_priority__lte
	DeviceRedundancyGroupPriorityLte *string `form:"device_redundancy_group_priority__lte,omitempty" json:"device_redundancy_group_priority__lte,omitempty"`

	// DeviceRedundancyGroupPriorityN device_redundancy_group_priority__n
	DeviceRedundancyGroupPriorityN *string `form:"device_redundancy_group_priority__n,omitempty" json:"device_redundancy_group_priority__n,omitempty"`

	// DeviceTypeId Device type (ID)
	DeviceTypeId *string `form:"device_type_id,omitempty" json:"device_type_id,omitempty"`

	// DeviceTypeIdN Device type (ID)
	DeviceTypeIdN *string `form:"device_type_id__n,omitempty" json:"device_type_id__n,omitempty"`

	// Face face
	Face *DcimDevicesListParamsFace `form:"face,omitempty" json:"face,omitempty"`

	// FaceN face__n
	FaceN *DcimDevicesListParamsFaceN `form:"face__n,omitempty" json:"face__n,omitempty"`

	// HasConsolePorts Has console ports
	HasConsolePorts *string `form:"has_console_ports,omitempty" json:"has_console_ports,omitempty"`

	// HasConsoleServerPorts Has console server ports
	HasConsoleServerPorts *string `form:"has_console_server_ports,omitempty" json:"has_console_server_ports,omitempty"`

	// HasDeviceBays Has device bays
	HasDeviceBays *string `form:"has_device_bays,omitempty" json:"has_device_bays,omitempty"`

	// HasFrontPorts Has front ports
	HasFrontPorts *string `form:"has_front_ports,omitempty" json:"has_front_ports,omitempty"`

	// HasInterfaces Has interfaces
	HasInterfaces *string `form:"has_interfaces,omitempty" json:"has_interfaces,omitempty"`

	// HasPowerOutlets Has power outlets
	HasPowerOutlets *string `form:"has_power_outlets,omitempty" json:"has_power_outlets,omitempty"`

	// HasPowerPorts Has power ports
	HasPowerPorts *string `form:"has_power_ports,omitempty" json:"has_power_ports,omitempty"`

	// HasPrimaryIp Has a primary IP
	HasPrimaryIp *string `form:"has_primary_ip,omitempty" json:"has_primary_ip,omitempty"`

	// HasRearPorts Has rear ports
	HasRearPorts *string `form:"has_rear_ports,omitempty" json:"has_rear_ports,omitempty"`

	// Id id
	Id *string `form:"id,omitempty" json:"id,omitempty"`

	// IdIc id__ic
	IdIc *string `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe id__ie
	IdIe *string `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew id__iew
	IdIew *string `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre id__ire
	IdIre *string `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw id__isw
	IdIsw *string `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN id__n
	IdN *string `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic id__nic
	IdNic *string `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie id__nie
	IdNie *string `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew id__niew
	IdNiew *string `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire id__nire
	IdNire *string `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw id__nisw
	IdNisw *string `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre id__nre
	IdNre *string `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe id__re
	IdRe *string `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Interfaces Has interfaces
	Interfaces *string `form:"interfaces,omitempty" json:"interfaces,omitempty"`

	// IsFullDepth Is full depth
	IsFullDepth *string `form:"is_full_depth,omitempty" json:"is_full_depth,omitempty"`

	// IsVirtualChassisMember Is a virtual chassis member
	IsVirtualChassisMember *string `form:"is_virtual_chassis_member,omitempty" json:"is_virtual_chassis_member,omitempty"`

	// LastUpdated last_updated
	LastUpdated *string `form:"last_updated,omitempty" json:"last_updated,omitempty"`

	// LastUpdatedGte last_updated__gte
	LastUpdatedGte *string `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`

	// LastUpdatedLte last_updated__lte
	LastUpdatedLte *string `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// LocalContextData Has local config context data
	LocalContextData *string `form:"local_context_data,omitempty" json:"local_context_data,omitempty"`

	// LocalContextSchema Schema (slug)
	LocalContextSchema *string `form:"local_context_schema,omitempty" json:"local_context_schema,omitempty"`

	// LocalContextSchemaN Schema (slug)
	LocalContextSchemaN *string `form:"local_context_schema__n,omitempty" json:"local_context_schema__n,omitempty"`

	// LocalContextSchemaId Schema (ID)
	LocalContextSchemaId *string `form:"local_context_schema_id,omitempty" json:"local_context_schema_id,omitempty"`

	// LocalContextSchemaIdN Schema (ID)
	LocalContextSchemaIdN *string `form:"local_context_schema_id__n,omitempty" json:"local_context_schema_id__n,omitempty"`

	// Location Location (slug or ID)
	Location *string `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *string `form:"location__n,omitempty" json:"location__n,omitempty"`

	// MacAddress MAC address
	MacAddress *string `form:"mac_address,omitempty" json:"mac_address,omitempty"`

	// MacAddressIc MAC address
	MacAddressIc *string `form:"mac_address__ic,omitempty" json:"mac_address__ic,omitempty"`

	// MacAddressIe MAC address
	MacAddressIe *string `form:"mac_address__ie,omitempty" json:"mac_address__ie,omitempty"`

	// MacAddressIew MAC address
	MacAddressIew *string `form:"mac_address__iew,omitempty" json:"mac_address__iew,omitempty"`

	// MacAddressIre MAC address
	MacAddressIre *string `form:"mac_address__ire,omitempty" json:"mac_address__ire,omitempty"`

	// MacAddressIsw MAC address
	MacAddressIsw *string `form:"mac_address__isw,omitempty" json:"mac_address__isw,omitempty"`

	// MacAddressN MAC address
	MacAddressN *string `form:"mac_address__n,omitempty" json:"mac_address__n,omitempty"`

	// MacAddressNic MAC address
	MacAddressNic *string `form:"mac_address__nic,omitempty" json:"mac_address__nic,omitempty"`

	// MacAddressNie MAC address
	MacAddressNie *string `form:"mac_address__nie,omitempty" json:"mac_address__nie,omitempty"`

	// MacAddressNiew MAC address
	MacAddressNiew *string `form:"mac_address__niew,omitempty" json:"mac_address__niew,omitempty"`

	// MacAddressNire MAC address
	MacAddressNire *string `form:"mac_address__nire,omitempty" json:"mac_address__nire,omitempty"`

	// MacAddressNisw MAC address
	MacAddressNisw *string `form:"mac_address__nisw,omitempty" json:"mac_address__nisw,omitempty"`

	// MacAddressNre MAC address
	MacAddressNre *string `form:"mac_address__nre,omitempty" json:"mac_address__nre,omitempty"`

	// MacAddressRe MAC address
	MacAddressRe *string `form:"mac_address__re,omitempty" json:"mac_address__re,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerN Manufacturer (slug)
	ManufacturerN *string `form:"manufacturer__n,omitempty" json:"manufacturer__n,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *string `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// ManufacturerIdN Manufacturer (ID)
	ManufacturerIdN *string `form:"manufacturer_id__n,omitempty" json:"manufacturer_id__n,omitempty"`

	// Model Device model (slug)
	Model *string `form:"model,omitempty" json:"model,omitempty"`

	// ModelN Device model (slug)
	ModelN *string `form:"model__n,omitempty" json:"model__n,omitempty"`

	// Name name
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc name__ic
	NameIc *string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe name__ie
	NameIe *string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew name__iew
	NameIew *string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre name__ire
	NameIre *string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw name__isw
	NameIsw *string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN name__n
	NameN *string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic name__nic
	NameNic *string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie name__nie
	NameNie *string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew name__niew
	NameNiew *string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire name__nire
	NameNire *string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw name__nisw
	NameNisw *string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre name__nre
	NameNre *string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe name__re
	NameRe *string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PassThroughPorts Has pass-through ports
	PassThroughPorts *string `form:"pass_through_ports,omitempty" json:"pass_through_ports,omitempty"`

	// Platform Platform (slug)
	Platform *string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformN Platform (slug)
	PlatformN *string `form:"platform__n,omitempty" json:"platform__n,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *string `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// PlatformIdN Platform (ID)
	PlatformIdN *string `form:"platform_id__n,omitempty" json:"platform_id__n,omitempty"`

	// Position position
	Position *string `form:"position,omitempty" json:"position,omitempty"`

	// PositionGt position__gt
	PositionGt *string `form:"position__gt,omitempty" json:"position__gt,omitempty"`

	// PositionGte position__gte
	PositionGte *string `form:"position__gte,omitempty" json:"position__gte,omitempty"`

	// PositionLt position__lt
	PositionLt *string `form:"position__lt,omitempty" json:"position__lt,omitempty"`

	// PositionLte position__lte
	PositionLte *string `form:"position__lte,omitempty" json:"position__lte,omitempty"`

	// PositionN position__n
	PositionN *string `form:"position__n,omitempty" json:"position__n,omitempty"`

	// PowerOutlets Has power outlets
	PowerOutlets *string `form:"power_outlets,omitempty" json:"power_outlets,omitempty"`

	// PowerPorts Has power ports
	PowerPorts *string `form:"power_ports,omitempty" json:"power_ports,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// RackGroupId Rack group (ID)
	RackGroupId *string `form:"rack_group_id,omitempty" json:"rack_group_id,omitempty"`

	// RackGroupIdN Rack group (ID)
	RackGroupIdN *string `form:"rack_group_id__n,omitempty" json:"rack_group_id__n,omitempty"`

	// RackId Rack (ID)
	RackId *string `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// RackIdN Rack (ID)
	RackIdN *string `form:"rack_id__n,omitempty" json:"rack_id__n,omitempty"`

	// Region Region (slug or ID)
	Region *string `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *string `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *string `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *string `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Role Role (slug)
	Role *string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *string `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *string `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`

	// SecretsGroup Secrets group (slug)
	SecretsGroup *string `form:"secrets_group,omitempty" json:"secrets_group,omitempty"`

	// SecretsGroupN Secrets group (slug)
	SecretsGroupN *string `form:"secrets_group__n,omitempty" json:"secrets_group__n,omitempty"`

	// SecretsGroupId Secrets group (ID)
	SecretsGroupId *string `form:"secrets_group_id,omitempty" json:"secrets_group_id,omitempty"`

	// SecretsGroupIdN Secrets group (ID)
	SecretsGroupIdN *string `form:"secrets_group_id__n,omitempty" json:"secrets_group_id__n,omitempty"`

	// Serial serial
	Serial *string `form:"serial,omitempty" json:"serial,omitempty"`

	// Site Site (slug or ID)
	Site *string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *string `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *string `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`

	// Status status
	Status *string `form:"status,omitempty" json:"status,omitempty"`

	// StatusN status__n
	StatusN *string `form:"status__n,omitempty" json:"status__n,omitempty"`

	// Tag tag
	Tag *string `form:"tag,omitempty" json:"tag,omitempty"`

	// TagN tag__n
	TagN *string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *string `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *string `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *string `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *string `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *string `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *string `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *string `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// VcPosition vc_position
	VcPosition *string `form:"vc_position,omitempty" json:"vc_position,omitempty"`

	// VcPositionGt vc_position__gt
	VcPositionGt *string `form:"vc_position__gt,omitempty" json:"vc_position__gt,omitempty"`

	// VcPositionGte vc_position__gte
	VcPositionGte *string `form:"vc_position__gte,omitempty" json:"vc_position__gte,omitempty"`

	// VcPositionLt vc_position__lt
	VcPositionLt *string `form:"vc_position__lt,omitempty" json:"vc_position__lt,omitempty"`

	// VcPositionLte vc_position__lte
	VcPositionLte *string `form:"vc_position__lte,omitempty" json:"vc_position__lte,omitempty"`

	// VcPositionN vc_position__n
	VcPositionN *string `form:"vc_position__n,omitempty" json:"vc_position__n,omitempty"`

	// VcPriority vc_priority
	VcPriority *string `form:"vc_priority,omitempty" json:"vc_priority,omitempty"`

	// VcPriorityGt vc_priority__gt
	VcPriorityGt *string `form:"vc_priority__gt,omitempty" json:"vc_priority__gt,omitempty"`

	// VcPriorityGte vc_priority__gte
	VcPriorityGte *string `form:"vc_priority__gte,omitempty" json:"vc_priority__gte,omitempty"`

	// VcPriorityLt vc_priority__lt
	VcPriorityLt *string `form:"vc_priority__lt,omitempty" json:"vc_priority__lt,omitempty"`

	// VcPriorityLte vc_priority__lte
	VcPriorityLte *string `form:"vc_priority__lte,omitempty" json:"vc_priority__lte,omitempty"`

	// VcPriorityN vc_priority__n
	VcPriorityN *string `form:"vc_priority__n,omitempty" json:"vc_priority__n,omitempty"`

	// VirtualChassisId Virtual chassis (ID)
	VirtualChassisId *string `form:"virtual_chassis_id,omitempty" json:"virtual_chassis_id,omitempty"`

	// VirtualChassisIdN Virtual chassis (ID)
	VirtualChassisIdN *string `form:"virtual_chassis_id__n,omitempty" json:"virtual_chassis_id__n,omitempty"`

	// VirtualChassisMember Is a virtual chassis member
	VirtualChassisMember *string `form:"virtual_chassis_member,omitempty" json:"virtual_chassis_member,omitempty"`
}

// DcimDevicesListParamsFace defines parameters for DcimDevicesList.
type DcimDevicesListParamsFace string

// DcimDevicesListParamsFaceN defines parameters for DcimDevicesList.
type DcimDevicesListParamsFaceN string

// DcimDevicesBulkPartialUpdateJSONBody defines parameters for DcimDevicesBulkPartialUpdate.
type DcimDevicesBulkPartialUpdateJSONBody = []PatchedBulkWritableDeviceWithConfigContextRequest

// DcimDevicesBulkUpdateJSONBody defines parameters for DcimDevicesBulkUpdate.
type DcimDevicesBulkUpdateJSONBody = []BulkWritableDeviceWithConfigContextRequest

// DcimDevicesNapalmRetrieveParams defines parameters for DcimDevicesNapalmRetrieve.
type DcimDevicesNapalmRetrieveParams struct {
	Method string `form:"method" json:"method"`
}

// DcimDevicesNotesListParams defines parameters for DcimDevicesNotesList.
type DcimDevicesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimFrontPortTemplatesBulkDestroyJSONBody defines parameters for DcimFrontPortTemplatesBulkDestroy.
type DcimFrontPortTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimFrontPortTemplatesListParams defines parameters for DcimFrontPortTemplatesList.
type DcimFrontPortTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                   *string `form:"q,omitempty" json:"q,omitempty"`
	RearPortPosition    *[]int  `form:"rear_port_position,omitempty" json:"rear_port_position,omitempty"`
	RearPortPositionGt  *[]int  `form:"rear_port_position__gt,omitempty" json:"rear_port_position__gt,omitempty"`
	RearPortPositionGte *[]int  `form:"rear_port_position__gte,omitempty" json:"rear_port_position__gte,omitempty"`
	RearPortPositionLt  *[]int  `form:"rear_port_position__lt,omitempty" json:"rear_port_position__lt,omitempty"`
	RearPortPositionLte *[]int  `form:"rear_port_position__lte,omitempty" json:"rear_port_position__lte,omitempty"`
	RearPortPositionN   *[]int  `form:"rear_port_position__n,omitempty" json:"rear_port_position__n,omitempty"`

	// RearPortTemplate Rear port template
	RearPortTemplate *[]openapi_types.UUID `form:"rear_port_template,omitempty" json:"rear_port_template,omitempty"`

	// RearPortTemplateN Rear port template
	RearPortTemplateN *[]openapi_types.UUID `form:"rear_port_template__n,omitempty" json:"rear_port_template__n,omitempty"`
	Type              *string               `form:"type,omitempty" json:"type,omitempty"`
	TypeN             *string               `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimFrontPortTemplatesBulkPartialUpdateJSONBody defines parameters for DcimFrontPortTemplatesBulkPartialUpdate.
type DcimFrontPortTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableFrontPortTemplateRequest

// DcimFrontPortTemplatesBulkUpdateJSONBody defines parameters for DcimFrontPortTemplatesBulkUpdate.
type DcimFrontPortTemplatesBulkUpdateJSONBody = []BulkWritableFrontPortTemplateRequest

// DcimFrontPortTemplatesNotesListParams defines parameters for DcimFrontPortTemplatesNotesList.
type DcimFrontPortTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimFrontPortsBulkDestroyJSONBody defines parameters for DcimFrontPortsBulkDestroy.
type DcimFrontPortsBulkDestroyJSONBody = []BulkOperationRequest

// DcimFrontPortsListParams defines parameters for DcimFrontPortsList.
type DcimFrontPortsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN          *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled          *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label     *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc   *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe   *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew  *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre  *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw  *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN    *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic  *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie  *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre  *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe   *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// RearPort Rear port (name or ID)
	RearPort *[]openapi_types.UUID `form:"rear_port,omitempty" json:"rear_port,omitempty"`

	// RearPortN Rear port (name or ID)
	RearPortN           *[]openapi_types.UUID `form:"rear_port__n,omitempty" json:"rear_port__n,omitempty"`
	RearPortPosition    *[]int                `form:"rear_port_position,omitempty" json:"rear_port_position,omitempty"`
	RearPortPositionGt  *[]int                `form:"rear_port_position__gt,omitempty" json:"rear_port_position__gt,omitempty"`
	RearPortPositionGte *[]int                `form:"rear_port_position__gte,omitempty" json:"rear_port_position__gte,omitempty"`
	RearPortPositionLt  *[]int                `form:"rear_port_position__lt,omitempty" json:"rear_port_position__lt,omitempty"`
	RearPortPositionLte *[]int                `form:"rear_port_position__lte,omitempty" json:"rear_port_position__lte,omitempty"`
	RearPortPositionN   *[]int                `form:"rear_port_position__n,omitempty" json:"rear_port_position__n,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
	Type    *string               `form:"type,omitempty" json:"type,omitempty"`
	TypeN   *string               `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimFrontPortsBulkPartialUpdateJSONBody defines parameters for DcimFrontPortsBulkPartialUpdate.
type DcimFrontPortsBulkPartialUpdateJSONBody = []PatchedBulkWritableFrontPortRequest

// DcimFrontPortsBulkUpdateJSONBody defines parameters for DcimFrontPortsBulkUpdate.
type DcimFrontPortsBulkUpdateJSONBody = []BulkWritableFrontPortRequest

// DcimFrontPortsNotesListParams defines parameters for DcimFrontPortsNotesList.
type DcimFrontPortsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimInterfaceConnectionsListParams defines parameters for DcimInterfaceConnectionsList.
type DcimInterfaceConnectionsListParams struct {
	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Site Site (slug)
	Site *string `form:"site,omitempty" json:"site,omitempty"`
}

// DcimInterfaceTemplatesBulkDestroyJSONBody defines parameters for DcimInterfaceTemplatesBulkDestroy.
type DcimInterfaceTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimInterfaceTemplatesListParams defines parameters for DcimInterfaceTemplatesList.
type DcimInterfaceTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int  `form:"limit,omitempty" json:"limit,omitempty"`
	MgmtOnly *bool `form:"mgmt_only,omitempty" json:"mgmt_only,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimInterfaceTemplatesBulkPartialUpdateJSONBody defines parameters for DcimInterfaceTemplatesBulkPartialUpdate.
type DcimInterfaceTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableInterfaceTemplateRequest

// DcimInterfaceTemplatesBulkUpdateJSONBody defines parameters for DcimInterfaceTemplatesBulkUpdate.
type DcimInterfaceTemplatesBulkUpdateJSONBody = []BulkWritableInterfaceTemplateRequest

// DcimInterfaceTemplatesNotesListParams defines parameters for DcimInterfaceTemplatesNotesList.
type DcimInterfaceTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimInterfacesBulkDestroyJSONBody defines parameters for DcimInterfacesBulkDestroy.
type DcimInterfacesBulkDestroyJSONBody = []BulkOperationRequest

// DcimInterfacesListParams defines parameters for DcimInterfacesList.
type DcimInterfacesListParams struct {
	// Bridge Bridge interface (name or ID)
	Bridge *[]openapi_types.UUID `form:"bridge,omitempty" json:"bridge,omitempty"`

	// BridgeN Bridge interface (name or ID)
	BridgeN *[]openapi_types.UUID `form:"bridge__n,omitempty" json:"bridge__n,omitempty"`

	// BridgedInterfaces Bridged interfaces (name or ID)
	BridgedInterfaces *[]openapi_types.UUID `form:"bridged_interfaces,omitempty" json:"bridged_interfaces,omitempty"`

	// BridgedInterfacesN Bridged interfaces (name or ID)
	BridgedInterfacesN *[]openapi_types.UUID `form:"bridged_interfaces__n,omitempty" json:"bridged_interfaces__n,omitempty"`

	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// ChildInterfaces Child interfaces (name or ID)
	ChildInterfaces *[]openapi_types.UUID `form:"child_interfaces,omitempty" json:"child_interfaces,omitempty"`

	// ChildInterfacesN Child interfaces (name or ID)
	ChildInterfacesN *[]openapi_types.UUID `form:"child_interfaces__n,omitempty" json:"child_interfaces__n,omitempty"`

	// Connected Connected status (bool)
	Connected       *bool     `form:"connected,omitempty" json:"connected,omitempty"`
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceWithCommonVc Virtual Chassis member Device (ID)
	DeviceWithCommonVc *openapi_types.UUID `form:"device_with_common_vc,omitempty" json:"device_with_common_vc,omitempty"`
	Enabled            *bool               `form:"enabled,omitempty" json:"enabled,omitempty"`

	// HasBridgedInterfaces Has bridged interfaces
	HasBridgedInterfaces *bool `form:"has_bridged_interfaces,omitempty" json:"has_bridged_interfaces,omitempty"`

	// HasChildInterfaces Has child interfaces
	HasChildInterfaces *bool `form:"has_child_interfaces,omitempty" json:"has_child_interfaces,omitempty"`

	// HasMemberInterfaces Has member interfaces
	HasMemberInterfaces *bool `form:"has_member_interfaces,omitempty" json:"has_member_interfaces,omitempty"`

	// HasTaggedVlans Has tagged VLANs
	HasTaggedVlans *bool                 `form:"has_tagged_vlans,omitempty" json:"has_tagged_vlans,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Kind Kind of interface
	Kind      *string   `form:"kind,omitempty" json:"kind,omitempty"`
	Label     *[]string `form:"label,omitempty" json:"label,omitempty"`
	LabelIc   *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe   *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew  *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre  *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw  *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN    *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic  *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie  *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre  *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe   *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Lag LAG interface (name or ID)
	Lag *[]openapi_types.UUID `form:"lag,omitempty" json:"lag,omitempty"`

	// LagN LAG interface (name or ID)
	LagN *[]openapi_types.UUID `form:"lag__n,omitempty" json:"lag__n,omitempty"`

	// LagId LAG interface (ID)
	LagId *[]openapi_types.UUID `form:"lag_id,omitempty" json:"lag_id,omitempty"`

	// LagIdN LAG interface (ID)
	LagIdN *[]openapi_types.UUID `form:"lag_id__n,omitempty" json:"lag_id__n,omitempty"`

	// Limit Number of results to return per page.
	Limit          *int      `form:"limit,omitempty" json:"limit,omitempty"`
	MacAddress     *[]string `form:"mac_address,omitempty" json:"mac_address,omitempty"`
	MacAddressIc   *[]string `form:"mac_address__ic,omitempty" json:"mac_address__ic,omitempty"`
	MacAddressIe   *[]string `form:"mac_address__ie,omitempty" json:"mac_address__ie,omitempty"`
	MacAddressIew  *[]string `form:"mac_address__iew,omitempty" json:"mac_address__iew,omitempty"`
	MacAddressIre  *[]string `form:"mac_address__ire,omitempty" json:"mac_address__ire,omitempty"`
	MacAddressIsw  *[]string `form:"mac_address__isw,omitempty" json:"mac_address__isw,omitempty"`
	MacAddressN    *[]string `form:"mac_address__n,omitempty" json:"mac_address__n,omitempty"`
	MacAddressNic  *[]string `form:"mac_address__nic,omitempty" json:"mac_address__nic,omitempty"`
	MacAddressNie  *[]string `form:"mac_address__nie,omitempty" json:"mac_address__nie,omitempty"`
	MacAddressNiew *[]string `form:"mac_address__niew,omitempty" json:"mac_address__niew,omitempty"`
	MacAddressNire *[]string `form:"mac_address__nire,omitempty" json:"mac_address__nire,omitempty"`
	MacAddressNisw *[]string `form:"mac_address__nisw,omitempty" json:"mac_address__nisw,omitempty"`
	MacAddressNre  *[]string `form:"mac_address__nre,omitempty" json:"mac_address__nre,omitempty"`
	MacAddressRe   *[]string `form:"mac_address__re,omitempty" json:"mac_address__re,omitempty"`

	// MemberInterfaces Member interfaces (name or ID)
	MemberInterfaces *[]openapi_types.UUID `form:"member_interfaces,omitempty" json:"member_interfaces,omitempty"`

	// MemberInterfacesN Member interfaces (name or ID)
	MemberInterfacesN *[]openapi_types.UUID `form:"member_interfaces__n,omitempty" json:"member_interfaces__n,omitempty"`
	MgmtOnly          *bool                 `form:"mgmt_only,omitempty" json:"mgmt_only,omitempty"`
	Mode              *string               `form:"mode,omitempty" json:"mode,omitempty"`
	ModeN             *string               `form:"mode__n,omitempty" json:"mode__n,omitempty"`
	Mtu               *[]int                `form:"mtu,omitempty" json:"mtu,omitempty"`
	MtuGt             *[]int                `form:"mtu__gt,omitempty" json:"mtu__gt,omitempty"`
	MtuGte            *[]int                `form:"mtu__gte,omitempty" json:"mtu__gte,omitempty"`
	MtuLt             *[]int                `form:"mtu__lt,omitempty" json:"mtu__lt,omitempty"`
	MtuLte            *[]int                `form:"mtu__lte,omitempty" json:"mtu__lte,omitempty"`
	MtuN              *[]int                `form:"mtu__n,omitempty" json:"mtu__n,omitempty"`
	Name              *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc            *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe            *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew           *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre           *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw           *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN             *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic           *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie           *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew          *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire          *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw          *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre           *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe            *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// NautobotBgpModelsInterfacesBgpRoutingInstance Routing Instance UUID
	NautobotBgpModelsInterfacesBgpRoutingInstance     *[]string             `form:"nautobot_bgp_models_interfaces_bgp_routing_instance,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceIc   *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__ic,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__ic,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceIe   *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__ie,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__ie,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceIew  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__iew,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__iew,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceIre  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__ire,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__ire,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceIsw  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__isw,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__isw,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceN    *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__n,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__n,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNic  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__nic,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__nic,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNie  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__nie,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__nie,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNiew *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__niew,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__niew,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNire *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__nire,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__nire,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNisw *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__nisw,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__nisw,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceNre  *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__nre,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__nre,omitempty"`
	NautobotBgpModelsInterfacesBgpRoutingInstanceRe   *[]openapi_types.UUID `form:"nautobot_bgp_models_interfaces_bgp_routing_instance__re,omitempty" json:"nautobot_bgp_models_interfaces_bgp_routing_instance__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// ParentInterface Parent interface (name or ID)
	ParentInterface *[]openapi_types.UUID `form:"parent_interface,omitempty" json:"parent_interface,omitempty"`

	// ParentInterfaceN Parent interface (name or ID)
	ParentInterfaceN *[]openapi_types.UUID `form:"parent_interface__n,omitempty" json:"parent_interface__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// TaggedVlans Tagged VLANs (VID or ID)
	TaggedVlans *[]openapi_types.UUID `form:"tagged_vlans,omitempty" json:"tagged_vlans,omitempty"`

	// TaggedVlansN Tagged VLANs (VID or ID)
	TaggedVlansN *[]openapi_types.UUID `form:"tagged_vlans__n,omitempty" json:"tagged_vlans__n,omitempty"`
	Type         *[]string             `form:"type,omitempty" json:"type,omitempty"`
	TypeN        *[]string             `form:"type__n,omitempty" json:"type__n,omitempty"`

	// UntaggedVlan Untagged VLAN (VID or ID)
	UntaggedVlan *[]openapi_types.UUID `form:"untagged_vlan,omitempty" json:"untagged_vlan,omitempty"`

	// UntaggedVlanN Untagged VLAN (VID or ID)
	UntaggedVlanN *[]openapi_types.UUID `form:"untagged_vlan__n,omitempty" json:"untagged_vlan__n,omitempty"`

	// Vlan Assigned VID
	Vlan *float32 `form:"vlan,omitempty" json:"vlan,omitempty"`

	// VlanId Assigned VLAN
	VlanId *string `form:"vlan_id,omitempty" json:"vlan_id,omitempty"`
}

// DcimInterfacesBulkPartialUpdateJSONBody defines parameters for DcimInterfacesBulkPartialUpdate.
type DcimInterfacesBulkPartialUpdateJSONBody = []PatchedBulkWritableInterfaceRequest

// DcimInterfacesBulkUpdateJSONBody defines parameters for DcimInterfacesBulkUpdate.
type DcimInterfacesBulkUpdateJSONBody = []BulkWritableInterfaceRequest

// DcimInterfacesNotesListParams defines parameters for DcimInterfacesNotesList.
type DcimInterfacesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimInventoryItemsBulkDestroyJSONBody defines parameters for DcimInventoryItemsBulkDestroy.
type DcimInventoryItemsBulkDestroyJSONBody = []BulkOperationRequest

// DcimInventoryItemsListParams defines parameters for DcimInventoryItemsList.
type DcimInventoryItemsListParams struct {
	AssetTag     *[]string `form:"asset_tag,omitempty" json:"asset_tag,omitempty"`
	AssetTagIc   *[]string `form:"asset_tag__ic,omitempty" json:"asset_tag__ic,omitempty"`
	AssetTagIe   *[]string `form:"asset_tag__ie,omitempty" json:"asset_tag__ie,omitempty"`
	AssetTagIew  *[]string `form:"asset_tag__iew,omitempty" json:"asset_tag__iew,omitempty"`
	AssetTagIre  *[]string `form:"asset_tag__ire,omitempty" json:"asset_tag__ire,omitempty"`
	AssetTagIsw  *[]string `form:"asset_tag__isw,omitempty" json:"asset_tag__isw,omitempty"`
	AssetTagN    *[]string `form:"asset_tag__n,omitempty" json:"asset_tag__n,omitempty"`
	AssetTagNic  *[]string `form:"asset_tag__nic,omitempty" json:"asset_tag__nic,omitempty"`
	AssetTagNie  *[]string `form:"asset_tag__nie,omitempty" json:"asset_tag__nie,omitempty"`
	AssetTagNiew *[]string `form:"asset_tag__niew,omitempty" json:"asset_tag__niew,omitempty"`
	AssetTagNire *[]string `form:"asset_tag__nire,omitempty" json:"asset_tag__nire,omitempty"`
	AssetTagNisw *[]string `form:"asset_tag__nisw,omitempty" json:"asset_tag__nisw,omitempty"`
	AssetTagNre  *[]string `form:"asset_tag__nre,omitempty" json:"asset_tag__nre,omitempty"`
	AssetTagRe   *[]string `form:"asset_tag__re,omitempty" json:"asset_tag__re,omitempty"`

	// ChildItems Child items (name or ID)
	ChildItems *[]openapi_types.UUID `form:"child_items,omitempty" json:"child_items,omitempty"`

	// ChildItemsN Child items (name or ID)
	ChildItemsN     *[]openapi_types.UUID `form:"child_items__n,omitempty" json:"child_items__n,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *openapi_types.UUID `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *openapi_types.UUID `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN  *openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Discovered *bool               `form:"discovered,omitempty" json:"discovered,omitempty"`

	// HasChildItems Has child items
	HasChildItems *bool                 `form:"has_child_items,omitempty" json:"has_child_items,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label         *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc       *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe       *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew      *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre      *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw      *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN        *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic      *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie      *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew     *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire     *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw     *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre      *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe       *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *[]string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerN Manufacturer (slug)
	ManufacturerN *[]string `form:"manufacturer__n,omitempty" json:"manufacturer__n,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *[]openapi_types.UUID `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// ManufacturerIdN Manufacturer (ID)
	ManufacturerIdN *[]openapi_types.UUID `form:"manufacturer_id__n,omitempty" json:"manufacturer_id__n,omitempty"`
	Name            *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc          *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe          *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew         *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre         *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw         *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN           *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic         *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie         *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew        *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire        *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw        *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre         *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe          *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent (name or ID)
	Parent *[]openapi_types.UUID `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Parent (name or ID)
	ParentN *[]openapi_types.UUID `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// ParentId Parent inventory item (ID)
	ParentId *[]openapi_types.UUID `form:"parent_id,omitempty" json:"parent_id,omitempty"`

	// ParentIdN Parent inventory item (ID)
	ParentIdN  *[]openapi_types.UUID `form:"parent_id__n,omitempty" json:"parent_id__n,omitempty"`
	PartId     *[]string             `form:"part_id,omitempty" json:"part_id,omitempty"`
	PartIdIc   *[]string             `form:"part_id__ic,omitempty" json:"part_id__ic,omitempty"`
	PartIdIe   *[]string             `form:"part_id__ie,omitempty" json:"part_id__ie,omitempty"`
	PartIdIew  *[]string             `form:"part_id__iew,omitempty" json:"part_id__iew,omitempty"`
	PartIdIre  *[]string             `form:"part_id__ire,omitempty" json:"part_id__ire,omitempty"`
	PartIdIsw  *[]string             `form:"part_id__isw,omitempty" json:"part_id__isw,omitempty"`
	PartIdN    *[]string             `form:"part_id__n,omitempty" json:"part_id__n,omitempty"`
	PartIdNic  *[]string             `form:"part_id__nic,omitempty" json:"part_id__nic,omitempty"`
	PartIdNie  *[]string             `form:"part_id__nie,omitempty" json:"part_id__nie,omitempty"`
	PartIdNiew *[]string             `form:"part_id__niew,omitempty" json:"part_id__niew,omitempty"`
	PartIdNire *[]string             `form:"part_id__nire,omitempty" json:"part_id__nire,omitempty"`
	PartIdNisw *[]string             `form:"part_id__nisw,omitempty" json:"part_id__nisw,omitempty"`
	PartIdNre  *[]string             `form:"part_id__nre,omitempty" json:"part_id__nre,omitempty"`
	PartIdRe   *[]string             `form:"part_id__re,omitempty" json:"part_id__re,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`
	Serial    *string               `form:"serial,omitempty" json:"serial,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// DcimInventoryItemsBulkPartialUpdateJSONBody defines parameters for DcimInventoryItemsBulkPartialUpdate.
type DcimInventoryItemsBulkPartialUpdateJSONBody = []PatchedBulkWritableInventoryItemRequest

// DcimInventoryItemsBulkUpdateJSONBody defines parameters for DcimInventoryItemsBulkUpdate.
type DcimInventoryItemsBulkUpdateJSONBody = []BulkWritableInventoryItemRequest

// DcimInventoryItemsNotesListParams defines parameters for DcimInventoryItemsNotesList.
type DcimInventoryItemsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimLocationTypesBulkDestroyJSONBody defines parameters for DcimLocationTypesBulkDestroy.
type DcimLocationTypesBulkDestroyJSONBody = []BulkOperationRequest

// DcimLocationTypesListParams defines parameters for DcimLocationTypesList.
type DcimLocationTypesListParams struct {
	ContentTypes    *[]int                `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN   *[]int                `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`
	Nestable *bool     `form:"nestable,omitempty" json:"nestable,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent location type (slug or ID)
	Parent *[]openapi_types.UUID `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Parent location type (slug or ID)
	ParentN *[]openapi_types.UUID `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// DcimLocationTypesBulkPartialUpdateJSONBody defines parameters for DcimLocationTypesBulkPartialUpdate.
type DcimLocationTypesBulkPartialUpdateJSONBody = []PatchedBulkWritableLocationTypeRequest

// DcimLocationTypesBulkUpdateJSONBody defines parameters for DcimLocationTypesBulkUpdate.
type DcimLocationTypesBulkUpdateJSONBody = []BulkWritableLocationTypeRequest

// DcimLocationTypesNotesListParams defines parameters for DcimLocationTypesNotesList.
type DcimLocationTypesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimLocationsBulkDestroyJSONBody defines parameters for DcimLocationsBulkDestroy.
type DcimLocationsBulkDestroyJSONBody = []BulkOperationRequest

// DcimLocationsListParams defines parameters for DcimLocationsList.
type DcimLocationsListParams struct {
	// BaseSite Base location's site (slug or ID)
	BaseSite *[]string `form:"base_site,omitempty" json:"base_site,omitempty"`

	// ChildLocationType Child location type (slug or ID)
	ChildLocationType *[]string             `form:"child_location_type,omitempty" json:"child_location_type,omitempty"`
	ContentType       *[]int                `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN      *[]int                `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	Created           *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte        *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte        *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description       *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc     *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe     *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew    *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre    *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw    *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN      *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic    *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie    *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew   *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire   *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw   *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre    *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe     *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id                *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc              *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe              *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew             *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre             *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw             *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN               *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic             *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie             *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew            *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire            *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw            *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre             *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe              *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated       *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte    *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte    *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// LocationType Location type (slug or ID)
	LocationType *[]openapi_types.UUID `form:"location_type,omitempty" json:"location_type,omitempty"`

	// LocationTypeN Location type (slug or ID)
	LocationTypeN *[]openapi_types.UUID `form:"location_type__n,omitempty" json:"location_type__n,omitempty"`
	Name          *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc        *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe        *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew       *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre       *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw       *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN         *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic       *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie       *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew      *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire      *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw      *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre       *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe        *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent location (slug or ID)
	Parent *[]openapi_types.UUID `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Parent location (slug or ID)
	ParentN *[]openapi_types.UUID `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN    *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Status   *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN  *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`

	// Subtree Location(s) and descendants thereof (slug or ID)
	Subtree *[]string `form:"subtree,omitempty" json:"subtree,omitempty"`
	Tag     *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// DcimLocationsBulkPartialUpdateJSONBody defines parameters for DcimLocationsBulkPartialUpdate.
type DcimLocationsBulkPartialUpdateJSONBody = []PatchedBulkWritableLocationRequest

// DcimLocationsBulkUpdateJSONBody defines parameters for DcimLocationsBulkUpdate.
type DcimLocationsBulkUpdateJSONBody = []BulkWritableLocationRequest

// DcimLocationsNotesListParams defines parameters for DcimLocationsNotesList.
type DcimLocationsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimManufacturersBulkDestroyJSONBody defines parameters for DcimManufacturersBulkDestroy.
type DcimManufacturersBulkDestroyJSONBody = []BulkOperationRequest

// DcimManufacturersListParams defines parameters for DcimManufacturersList.
type DcimManufacturersListParams struct {
	Created         *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string           `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string           `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string           `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string           `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string           `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string           `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string           `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string           `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string           `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string           `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string           `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string           `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string           `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string           `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceTypes Device types (slug or ID)
	DeviceTypes *[]openapi_types.UUID `form:"device_types,omitempty" json:"device_types,omitempty"`

	// DeviceTypesN Device types (slug or ID)
	DeviceTypesN *[]openapi_types.UUID `form:"device_types__n,omitempty" json:"device_types__n,omitempty"`

	// HasDeviceTypes Has device types
	HasDeviceTypes *bool `form:"has_device_types,omitempty" json:"has_device_types,omitempty"`

	// HasInventoryItems Has inventory items
	HasInventoryItems *bool `form:"has_inventory_items,omitempty" json:"has_inventory_items,omitempty"`

	// HasPlatforms Has platforms
	HasPlatforms *bool                 `form:"has_platforms,omitempty" json:"has_platforms,omitempty"`
	Id           *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc         *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe         *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew        *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre        *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw        *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN          *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic        *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie        *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew       *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire       *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw       *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre        *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe         *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// InventoryItems Inventory items (name or ID)
	InventoryItems *[]openapi_types.UUID `form:"inventory_items,omitempty" json:"inventory_items,omitempty"`

	// InventoryItemsN Inventory items (name or ID)
	InventoryItemsN *[]openapi_types.UUID `form:"inventory_items__n,omitempty" json:"inventory_items__n,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platforms Platforms (slug or ID)
	Platforms *[]openapi_types.UUID `form:"platforms,omitempty" json:"platforms,omitempty"`

	// PlatformsN Platforms (slug or ID)
	PlatformsN *[]openapi_types.UUID `form:"platforms__n,omitempty" json:"platforms__n,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// DcimManufacturersBulkPartialUpdateJSONBody defines parameters for DcimManufacturersBulkPartialUpdate.
type DcimManufacturersBulkPartialUpdateJSONBody = []PatchedBulkWritableManufacturerRequest

// DcimManufacturersBulkUpdateJSONBody defines parameters for DcimManufacturersBulkUpdate.
type DcimManufacturersBulkUpdateJSONBody = []BulkWritableManufacturerRequest

// DcimManufacturersNotesListParams defines parameters for DcimManufacturersNotesList.
type DcimManufacturersNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPlatformsBulkDestroyJSONBody defines parameters for DcimPlatformsBulkDestroy.
type DcimPlatformsBulkDestroyJSONBody = []BulkOperationRequest

// DcimPlatformsListParams defines parameters for DcimPlatformsList.
type DcimPlatformsListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Devices         *[]openapi_types.UUID `form:"devices,omitempty" json:"devices,omitempty"`
	DevicesN        *[]openapi_types.UUID `form:"devices__n,omitempty" json:"devices__n,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasVirtualMachines Has virtual machines
	HasVirtualMachines *bool                 `form:"has_virtual_machines,omitempty" json:"has_virtual_machines,omitempty"`
	Id                 *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc               *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe               *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew              *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre              *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw              *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic              *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie              *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew             *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire             *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw             *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre              *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe               *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated        *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte     *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte     *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *[]string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerN Manufacturer (slug)
	ManufacturerN *[]string `form:"manufacturer__n,omitempty" json:"manufacturer__n,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *[]openapi_types.UUID `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// ManufacturerIdN Manufacturer (ID)
	ManufacturerIdN  *[]openapi_types.UUID `form:"manufacturer_id__n,omitempty" json:"manufacturer_id__n,omitempty"`
	Name             *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc           *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe           *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew          *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre          *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw          *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN            *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic          *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie          *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew         *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire         *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw         *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre          *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe           *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`
	NapalmArgs       *[]string             `form:"napalm_args,omitempty" json:"napalm_args,omitempty"`
	NapalmDriver     *[]string             `form:"napalm_driver,omitempty" json:"napalm_driver,omitempty"`
	NapalmDriverIc   *[]string             `form:"napalm_driver__ic,omitempty" json:"napalm_driver__ic,omitempty"`
	NapalmDriverIe   *[]string             `form:"napalm_driver__ie,omitempty" json:"napalm_driver__ie,omitempty"`
	NapalmDriverIew  *[]string             `form:"napalm_driver__iew,omitempty" json:"napalm_driver__iew,omitempty"`
	NapalmDriverIre  *[]string             `form:"napalm_driver__ire,omitempty" json:"napalm_driver__ire,omitempty"`
	NapalmDriverIsw  *[]string             `form:"napalm_driver__isw,omitempty" json:"napalm_driver__isw,omitempty"`
	NapalmDriverN    *[]string             `form:"napalm_driver__n,omitempty" json:"napalm_driver__n,omitempty"`
	NapalmDriverNic  *[]string             `form:"napalm_driver__nic,omitempty" json:"napalm_driver__nic,omitempty"`
	NapalmDriverNie  *[]string             `form:"napalm_driver__nie,omitempty" json:"napalm_driver__nie,omitempty"`
	NapalmDriverNiew *[]string             `form:"napalm_driver__niew,omitempty" json:"napalm_driver__niew,omitempty"`
	NapalmDriverNire *[]string             `form:"napalm_driver__nire,omitempty" json:"napalm_driver__nire,omitempty"`
	NapalmDriverNisw *[]string             `form:"napalm_driver__nisw,omitempty" json:"napalm_driver__nisw,omitempty"`
	NapalmDriverNre  *[]string             `form:"napalm_driver__nre,omitempty" json:"napalm_driver__nre,omitempty"`
	NapalmDriverRe   *[]string             `form:"napalm_driver__re,omitempty" json:"napalm_driver__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                *string               `form:"q,omitempty" json:"q,omitempty"`
	Slug             *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc           *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe           *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew          *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre          *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw          *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN            *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic          *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie          *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew         *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire         *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw         *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre          *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe           *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	VirtualMachines  *[]openapi_types.UUID `form:"virtual_machines,omitempty" json:"virtual_machines,omitempty"`
	VirtualMachinesN *[]openapi_types.UUID `form:"virtual_machines__n,omitempty" json:"virtual_machines__n,omitempty"`
}

// DcimPlatformsBulkPartialUpdateJSONBody defines parameters for DcimPlatformsBulkPartialUpdate.
type DcimPlatformsBulkPartialUpdateJSONBody = []PatchedBulkWritablePlatformRequest

// DcimPlatformsBulkUpdateJSONBody defines parameters for DcimPlatformsBulkUpdate.
type DcimPlatformsBulkUpdateJSONBody = []BulkWritablePlatformRequest

// DcimPlatformsNotesListParams defines parameters for DcimPlatformsNotesList.
type DcimPlatformsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerConnectionsListParams defines parameters for DcimPowerConnectionsList.
type DcimPowerConnectionsListParams struct {
	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Site Site (slug)
	Site *string `form:"site,omitempty" json:"site,omitempty"`
}

// DcimPowerFeedsBulkDestroyJSONBody defines parameters for DcimPowerFeedsBulkDestroy.
type DcimPowerFeedsBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerFeedsListParams defines parameters for DcimPowerFeedsList.
type DcimPowerFeedsListParams struct {
	Amperage          *[]int `form:"amperage,omitempty" json:"amperage,omitempty"`
	AmperageGt        *[]int `form:"amperage__gt,omitempty" json:"amperage__gt,omitempty"`
	AmperageGte       *[]int `form:"amperage__gte,omitempty" json:"amperage__gte,omitempty"`
	AmperageLt        *[]int `form:"amperage__lt,omitempty" json:"amperage__lt,omitempty"`
	AmperageLte       *[]int `form:"amperage__lte,omitempty" json:"amperage__lte,omitempty"`
	AmperageN         *[]int `form:"amperage__n,omitempty" json:"amperage__n,omitempty"`
	AvailablePower    *[]int `form:"available_power,omitempty" json:"available_power,omitempty"`
	AvailablePowerGt  *[]int `form:"available_power__gt,omitempty" json:"available_power__gt,omitempty"`
	AvailablePowerGte *[]int `form:"available_power__gte,omitempty" json:"available_power__gte,omitempty"`
	AvailablePowerLt  *[]int `form:"available_power__lt,omitempty" json:"available_power__lt,omitempty"`
	AvailablePowerLte *[]int `form:"available_power__lte,omitempty" json:"available_power__lte,omitempty"`
	AvailablePowerN   *[]int `form:"available_power__n,omitempty" json:"available_power__n,omitempty"`

	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN       *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled       *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`
	Comments     *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc   *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe   *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew  *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre  *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw  *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN    *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic  *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie  *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre  *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe   *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`

	// Connected Connected status (bool)
	Connected      *bool                 `form:"connected,omitempty" json:"connected,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit             *int      `form:"limit,omitempty" json:"limit,omitempty"`
	MaxUtilization    *[]int    `form:"max_utilization,omitempty" json:"max_utilization,omitempty"`
	MaxUtilizationGt  *[]int    `form:"max_utilization__gt,omitempty" json:"max_utilization__gt,omitempty"`
	MaxUtilizationGte *[]int    `form:"max_utilization__gte,omitempty" json:"max_utilization__gte,omitempty"`
	MaxUtilizationLt  *[]int    `form:"max_utilization__lt,omitempty" json:"max_utilization__lt,omitempty"`
	MaxUtilizationLte *[]int    `form:"max_utilization__lte,omitempty" json:"max_utilization__lte,omitempty"`
	MaxUtilizationN   *[]int    `form:"max_utilization__n,omitempty" json:"max_utilization__n,omitempty"`
	Name              *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc            *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe            *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew           *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre           *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw           *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN             *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic           *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie           *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew          *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire          *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw          *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre           *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe            *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int    `form:"offset,omitempty" json:"offset,omitempty"`
	Phase  *string `form:"phase,omitempty" json:"phase,omitempty"`
	PhaseN *string `form:"phase__n,omitempty" json:"phase__n,omitempty"`

	// PowerPanel Power panel (name or ID)
	PowerPanel *[]openapi_types.UUID `form:"power_panel,omitempty" json:"power_panel,omitempty"`

	// PowerPanelN Power panel (name or ID)
	PowerPanelN *[]openapi_types.UUID `form:"power_panel__n,omitempty" json:"power_panel__n,omitempty"`

	// PowerPanelId Power panel (ID)
	PowerPanelId *[]openapi_types.UUID `form:"power_panel_id,omitempty" json:"power_panel_id,omitempty"`

	// PowerPanelIdN Power panel (ID)
	PowerPanelIdN *[]openapi_types.UUID `form:"power_panel_id__n,omitempty" json:"power_panel_id__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rack Rack (name or ID)
	Rack *[]openapi_types.UUID `form:"rack,omitempty" json:"rack,omitempty"`

	// RackN Rack (name or ID)
	RackN *[]openapi_types.UUID `form:"rack__n,omitempty" json:"rack__n,omitempty"`

	// RackId Rack (ID)
	RackId *[]openapi_types.UUID `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// RackIdN Rack (ID)
	RackIdN *[]openapi_types.UUID `form:"rack_id__n,omitempty" json:"rack_id__n,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN    *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status     *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN    *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Supply     *string               `form:"supply,omitempty" json:"supply,omitempty"`
	SupplyN    *string               `form:"supply__n,omitempty" json:"supply__n,omitempty"`
	Tag        *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN       *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
	Type       *string               `form:"type,omitempty" json:"type,omitempty"`
	TypeN      *string               `form:"type__n,omitempty" json:"type__n,omitempty"`
	Voltage    *[]int                `form:"voltage,omitempty" json:"voltage,omitempty"`
	VoltageGt  *[]int                `form:"voltage__gt,omitempty" json:"voltage__gt,omitempty"`
	VoltageGte *[]int                `form:"voltage__gte,omitempty" json:"voltage__gte,omitempty"`
	VoltageLt  *[]int                `form:"voltage__lt,omitempty" json:"voltage__lt,omitempty"`
	VoltageLte *[]int                `form:"voltage__lte,omitempty" json:"voltage__lte,omitempty"`
	VoltageN   *[]int                `form:"voltage__n,omitempty" json:"voltage__n,omitempty"`
}

// DcimPowerFeedsBulkPartialUpdateJSONBody defines parameters for DcimPowerFeedsBulkPartialUpdate.
type DcimPowerFeedsBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerFeedRequest

// DcimPowerFeedsBulkUpdateJSONBody defines parameters for DcimPowerFeedsBulkUpdate.
type DcimPowerFeedsBulkUpdateJSONBody = []BulkWritablePowerFeedRequest

// DcimPowerFeedsNotesListParams defines parameters for DcimPowerFeedsNotesList.
type DcimPowerFeedsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerOutletTemplatesBulkDestroyJSONBody defines parameters for DcimPowerOutletTemplatesBulkDestroy.
type DcimPowerOutletTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerOutletTemplatesListParams defines parameters for DcimPowerOutletTemplatesList.
type DcimPowerOutletTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *string `form:"feed_leg,omitempty" json:"feed_leg,omitempty"`

	// FeedLegN Phase (for three-phase feeds)
	FeedLegN *string `form:"feed_leg__n,omitempty" json:"feed_leg__n,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PowerPortTemplate Power port template (name or ID)
	PowerPortTemplate *[]openapi_types.UUID `form:"power_port_template,omitempty" json:"power_port_template,omitempty"`

	// PowerPortTemplateN Power port template (name or ID)
	PowerPortTemplateN *[]openapi_types.UUID `form:"power_port_template__n,omitempty" json:"power_port_template__n,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimPowerOutletTemplatesBulkPartialUpdateJSONBody defines parameters for DcimPowerOutletTemplatesBulkPartialUpdate.
type DcimPowerOutletTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerOutletTemplateRequest

// DcimPowerOutletTemplatesBulkUpdateJSONBody defines parameters for DcimPowerOutletTemplatesBulkUpdate.
type DcimPowerOutletTemplatesBulkUpdateJSONBody = []BulkWritablePowerOutletTemplateRequest

// DcimPowerOutletTemplatesNotesListParams defines parameters for DcimPowerOutletTemplatesNotesList.
type DcimPowerOutletTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerOutletsBulkDestroyJSONBody defines parameters for DcimPowerOutletsBulkDestroy.
type DcimPowerOutletsBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerOutletsListParams defines parameters for DcimPowerOutletsList.
type DcimPowerOutletsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// Connected Connected status (bool)
	Connected       *bool     `form:"connected,omitempty" json:"connected,omitempty"`
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`

	// FeedLeg Phase (for three-phase feeds)
	FeedLeg *string `form:"feed_leg,omitempty" json:"feed_leg,omitempty"`

	// FeedLegN Phase (for three-phase feeds)
	FeedLegN  *string               `form:"feed_leg__n,omitempty" json:"feed_leg__n,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label     *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc   *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe   *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew  *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre  *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw  *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN    *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic  *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie  *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre  *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe   *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PowerPort Power port
	PowerPort *[]openapi_types.UUID `form:"power_port,omitempty" json:"power_port,omitempty"`

	// PowerPortN Power port
	PowerPortN *[]openapi_types.UUID `form:"power_port__n,omitempty" json:"power_port__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Type Physical port type
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Physical port type
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimPowerOutletsBulkPartialUpdateJSONBody defines parameters for DcimPowerOutletsBulkPartialUpdate.
type DcimPowerOutletsBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerOutletRequest

// DcimPowerOutletsBulkUpdateJSONBody defines parameters for DcimPowerOutletsBulkUpdate.
type DcimPowerOutletsBulkUpdateJSONBody = []BulkWritablePowerOutletRequest

// DcimPowerOutletsNotesListParams defines parameters for DcimPowerOutletsNotesList.
type DcimPowerOutletsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerPanelsBulkDestroyJSONBody defines parameters for DcimPowerPanelsBulkDestroy.
type DcimPowerPanelsBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerPanelsListParams defines parameters for DcimPowerPanelsList.
type DcimPowerPanelsListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// HasPowerFeeds Has power feeds
	HasPowerFeeds  *bool                 `form:"has_power_feeds,omitempty" json:"has_power_feeds,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PowerFeeds Power feeds (name or ID)
	PowerFeeds *[]openapi_types.UUID `form:"power_feeds,omitempty" json:"power_feeds,omitempty"`

	// PowerFeedsN Power feeds (name or ID)
	PowerFeedsN *[]openapi_types.UUID `form:"power_feeds__n,omitempty" json:"power_feeds__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// RackGroup Rack group (slug or ID)
	RackGroup *[]openapi_types.UUID `form:"rack_group,omitempty" json:"rack_group,omitempty"`

	// RackGroupN Rack group (slug or ID)
	RackGroupN *[]openapi_types.UUID `form:"rack_group__n,omitempty" json:"rack_group__n,omitempty"`

	// RackGroupId Rack group (ID)
	RackGroupId *[]openapi_types.UUID `form:"rack_group_id,omitempty" json:"rack_group_id,omitempty"`

	// RackGroupIdN Rack group (ID)
	RackGroupIdN *[]openapi_types.UUID `form:"rack_group_id__n,omitempty" json:"rack_group_id__n,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// DcimPowerPanelsBulkPartialUpdateJSONBody defines parameters for DcimPowerPanelsBulkPartialUpdate.
type DcimPowerPanelsBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerPanelRequest

// DcimPowerPanelsBulkUpdateJSONBody defines parameters for DcimPowerPanelsBulkUpdate.
type DcimPowerPanelsBulkUpdateJSONBody = []BulkWritablePowerPanelRequest

// DcimPowerPanelsNotesListParams defines parameters for DcimPowerPanelsNotesList.
type DcimPowerPanelsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerPortTemplatesBulkDestroyJSONBody defines parameters for DcimPowerPortTemplatesBulkDestroy.
type DcimPowerPortTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerPortTemplatesListParams defines parameters for DcimPowerPortTemplatesList.
type DcimPowerPortTemplatesListParams struct {
	AllocatedDraw    *[]int `form:"allocated_draw,omitempty" json:"allocated_draw,omitempty"`
	AllocatedDrawGt  *[]int `form:"allocated_draw__gt,omitempty" json:"allocated_draw__gt,omitempty"`
	AllocatedDrawGte *[]int `form:"allocated_draw__gte,omitempty" json:"allocated_draw__gte,omitempty"`
	AllocatedDrawLt  *[]int `form:"allocated_draw__lt,omitempty" json:"allocated_draw__lt,omitempty"`
	AllocatedDrawLte *[]int `form:"allocated_draw__lte,omitempty" json:"allocated_draw__lte,omitempty"`
	AllocatedDrawN   *[]int `form:"allocated_draw__n,omitempty" json:"allocated_draw__n,omitempty"`

	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// HasPowerOutletTemplates Has power outlet templates
	HasPowerOutletTemplates *bool `form:"has_power_outlet_templates,omitempty" json:"has_power_outlet_templates,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit          *int   `form:"limit,omitempty" json:"limit,omitempty"`
	MaximumDraw    *[]int `form:"maximum_draw,omitempty" json:"maximum_draw,omitempty"`
	MaximumDrawGt  *[]int `form:"maximum_draw__gt,omitempty" json:"maximum_draw__gt,omitempty"`
	MaximumDrawGte *[]int `form:"maximum_draw__gte,omitempty" json:"maximum_draw__gte,omitempty"`
	MaximumDrawLt  *[]int `form:"maximum_draw__lt,omitempty" json:"maximum_draw__lt,omitempty"`
	MaximumDrawLte *[]int `form:"maximum_draw__lte,omitempty" json:"maximum_draw__lte,omitempty"`
	MaximumDrawN   *[]int `form:"maximum_draw__n,omitempty" json:"maximum_draw__n,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PowerOutletTemplates Power outlet templates (name or ID)
	PowerOutletTemplates *[]openapi_types.UUID `form:"power_outlet_templates,omitempty" json:"power_outlet_templates,omitempty"`

	// PowerOutletTemplatesN Power outlet templates (name or ID)
	PowerOutletTemplatesN *[]openapi_types.UUID `form:"power_outlet_templates__n,omitempty" json:"power_outlet_templates__n,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimPowerPortTemplatesBulkPartialUpdateJSONBody defines parameters for DcimPowerPortTemplatesBulkPartialUpdate.
type DcimPowerPortTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerPortTemplateRequest

// DcimPowerPortTemplatesBulkUpdateJSONBody defines parameters for DcimPowerPortTemplatesBulkUpdate.
type DcimPowerPortTemplatesBulkUpdateJSONBody = []BulkWritablePowerPortTemplateRequest

// DcimPowerPortTemplatesNotesListParams defines parameters for DcimPowerPortTemplatesNotesList.
type DcimPowerPortTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimPowerPortsBulkDestroyJSONBody defines parameters for DcimPowerPortsBulkDestroy.
type DcimPowerPortsBulkDestroyJSONBody = []BulkOperationRequest

// DcimPowerPortsListParams defines parameters for DcimPowerPortsList.
type DcimPowerPortsListParams struct {
	AllocatedDraw    *[]int `form:"allocated_draw,omitempty" json:"allocated_draw,omitempty"`
	AllocatedDrawGt  *[]int `form:"allocated_draw__gt,omitempty" json:"allocated_draw__gt,omitempty"`
	AllocatedDrawGte *[]int `form:"allocated_draw__gte,omitempty" json:"allocated_draw__gte,omitempty"`
	AllocatedDrawLt  *[]int `form:"allocated_draw__lt,omitempty" json:"allocated_draw__lt,omitempty"`
	AllocatedDrawLte *[]int `form:"allocated_draw__lte,omitempty" json:"allocated_draw__lte,omitempty"`
	AllocatedDrawN   *[]int `form:"allocated_draw__n,omitempty" json:"allocated_draw__n,omitempty"`

	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`

	// Connected Connected status (bool)
	Connected       *bool     `form:"connected,omitempty" json:"connected,omitempty"`
	Description     *[]string `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`

	// HasPowerOutlets Has power outlets
	HasPowerOutlets *bool                 `form:"has_power_outlets,omitempty" json:"has_power_outlets,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label           *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc         *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe         *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew        *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre        *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw        *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN          *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic        *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie        *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew       *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire       *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw       *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre        *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe         *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit          *int      `form:"limit,omitempty" json:"limit,omitempty"`
	MaximumDraw    *[]int    `form:"maximum_draw,omitempty" json:"maximum_draw,omitempty"`
	MaximumDrawGt  *[]int    `form:"maximum_draw__gt,omitempty" json:"maximum_draw__gt,omitempty"`
	MaximumDrawGte *[]int    `form:"maximum_draw__gte,omitempty" json:"maximum_draw__gte,omitempty"`
	MaximumDrawLt  *[]int    `form:"maximum_draw__lt,omitempty" json:"maximum_draw__lt,omitempty"`
	MaximumDrawLte *[]int    `form:"maximum_draw__lte,omitempty" json:"maximum_draw__lte,omitempty"`
	MaximumDrawN   *[]int    `form:"maximum_draw__n,omitempty" json:"maximum_draw__n,omitempty"`
	Name           *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc         *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe         *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew        *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre        *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw        *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN          *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic        *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie        *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew       *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire       *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw       *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre        *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe         *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PowerOutlets Power outlets (name or ID)
	PowerOutlets *[]openapi_types.UUID `form:"power_outlets,omitempty" json:"power_outlets,omitempty"`

	// PowerOutletsN Power outlets (name or ID)
	PowerOutletsN *[]openapi_types.UUID `form:"power_outlets__n,omitempty" json:"power_outlets__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Type Physical port type
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Physical port type
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimPowerPortsBulkPartialUpdateJSONBody defines parameters for DcimPowerPortsBulkPartialUpdate.
type DcimPowerPortsBulkPartialUpdateJSONBody = []PatchedBulkWritablePowerPortRequest

// DcimPowerPortsBulkUpdateJSONBody defines parameters for DcimPowerPortsBulkUpdate.
type DcimPowerPortsBulkUpdateJSONBody = []BulkWritablePowerPortRequest

// DcimPowerPortsNotesListParams defines parameters for DcimPowerPortsNotesList.
type DcimPowerPortsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRackGroupsBulkDestroyJSONBody defines parameters for DcimRackGroupsBulkDestroy.
type DcimRackGroupsBulkDestroyJSONBody = []BulkOperationRequest

// DcimRackGroupsListParams defines parameters for DcimRackGroupsList.
type DcimRackGroupsListParams struct {
	// Children Children (slug or ID)
	Children *[]openapi_types.UUID `form:"children,omitempty" json:"children,omitempty"`

	// ChildrenN Children (slug or ID)
	ChildrenN       *[]openapi_types.UUID `form:"children__n,omitempty" json:"children__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// HasChildren Has children
	HasChildren *bool `form:"has_children,omitempty" json:"has_children,omitempty"`

	// HasPowerPanels Has power panels
	HasPowerPanels *bool `form:"has_power_panels,omitempty" json:"has_power_panels,omitempty"`

	// HasRacks Has racks
	HasRacks       *bool                 `form:"has_racks,omitempty" json:"has_racks,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent (slug)
	Parent *[]string `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Parent (slug)
	ParentN *[]string `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// ParentId Parent (ID)
	ParentId *[]openapi_types.UUID `form:"parent_id,omitempty" json:"parent_id,omitempty"`

	// ParentIdN Parent (ID)
	ParentIdN *[]openapi_types.UUID `form:"parent_id__n,omitempty" json:"parent_id__n,omitempty"`

	// PowerPanels Power panels (name or ID)
	PowerPanels *[]openapi_types.UUID `form:"power_panels,omitempty" json:"power_panels,omitempty"`

	// PowerPanelsN Power panels (name or ID)
	PowerPanelsN *[]openapi_types.UUID `form:"power_panels__n,omitempty" json:"power_panels__n,omitempty"`

	// Q Search
	Q      *string               `form:"q,omitempty" json:"q,omitempty"`
	Racks  *[]openapi_types.UUID `form:"racks,omitempty" json:"racks,omitempty"`
	RacksN *[]openapi_types.UUID `form:"racks__n,omitempty" json:"racks__n,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN  *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// DcimRackGroupsBulkPartialUpdateJSONBody defines parameters for DcimRackGroupsBulkPartialUpdate.
type DcimRackGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableRackGroupRequest

// DcimRackGroupsBulkUpdateJSONBody defines parameters for DcimRackGroupsBulkUpdate.
type DcimRackGroupsBulkUpdateJSONBody = []BulkWritableRackGroupRequest

// DcimRackGroupsNotesListParams defines parameters for DcimRackGroupsNotesList.
type DcimRackGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRackReservationsBulkDestroyJSONBody defines parameters for DcimRackReservationsBulkDestroy.
type DcimRackReservationsBulkDestroyJSONBody = []BulkOperationRequest

// DcimRackReservationsListParams defines parameters for DcimRackReservationsList.
type DcimRackReservationsListParams struct {
	Created         *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string           `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string           `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string           `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string           `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string           `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string           `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string           `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string           `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string           `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string           `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string           `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string           `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string           `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string           `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Group Rack group (slug)
	Group *[]openapi_types.UUID `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Rack group (slug)
	GroupN *[]openapi_types.UUID `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Rack group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Rack group (ID)
	GroupIdN       *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rack Rack (name or ID)
	Rack *[]openapi_types.UUID `form:"rack,omitempty" json:"rack,omitempty"`

	// RackN Rack (name or ID)
	RackN *[]openapi_types.UUID `form:"rack__n,omitempty" json:"rack__n,omitempty"`

	// RackId Rack (ID)
	RackId *[]openapi_types.UUID `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// RackIdN Rack (ID)
	RackIdN *[]openapi_types.UUID `form:"rack_id__n,omitempty" json:"rack_id__n,omitempty"`

	// Site Site (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// User User (name)
	User *[]string `form:"user,omitempty" json:"user,omitempty"`

	// UserN User (name)
	UserN *[]string `form:"user__n,omitempty" json:"user__n,omitempty"`

	// UserId User (ID)
	UserId *[]openapi_types.UUID `form:"user_id,omitempty" json:"user_id,omitempty"`

	// UserIdN User (ID)
	UserIdN *[]openapi_types.UUID `form:"user_id__n,omitempty" json:"user_id__n,omitempty"`
}

// DcimRackReservationsBulkPartialUpdateJSONBody defines parameters for DcimRackReservationsBulkPartialUpdate.
type DcimRackReservationsBulkPartialUpdateJSONBody = []PatchedBulkWritableRackReservationRequest

// DcimRackReservationsBulkUpdateJSONBody defines parameters for DcimRackReservationsBulkUpdate.
type DcimRackReservationsBulkUpdateJSONBody = []BulkWritableRackReservationRequest

// DcimRackReservationsNotesListParams defines parameters for DcimRackReservationsNotesList.
type DcimRackReservationsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRackRolesBulkDestroyJSONBody defines parameters for DcimRackRolesBulkDestroy.
type DcimRackRolesBulkDestroyJSONBody = []BulkOperationRequest

// DcimRackRolesListParams defines parameters for DcimRackRolesList.
type DcimRackRolesListParams struct {
	Color           *[]string           `form:"color,omitempty" json:"color,omitempty"`
	ColorIc         *[]string           `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe         *[]string           `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew        *[]string           `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre        *[]string           `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw        *[]string           `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN          *[]string           `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic        *[]string           `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie        *[]string           `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew       *[]string           `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire       *[]string           `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw       *[]string           `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre        *[]string           `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe         *[]string           `form:"color__re,omitempty" json:"color__re,omitempty"`
	Created         *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string           `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string           `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string           `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string           `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string           `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string           `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string           `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string           `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string           `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string           `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string           `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string           `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string           `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string           `form:"description__re,omitempty" json:"description__re,omitempty"`

	// HasRacks Has racks
	HasRacks       *bool                 `form:"has_racks,omitempty" json:"has_racks,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string               `form:"q,omitempty" json:"q,omitempty"`
	Racks    *[]openapi_types.UUID `form:"racks,omitempty" json:"racks,omitempty"`
	RacksN   *[]openapi_types.UUID `form:"racks__n,omitempty" json:"racks__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// DcimRackRolesBulkPartialUpdateJSONBody defines parameters for DcimRackRolesBulkPartialUpdate.
type DcimRackRolesBulkPartialUpdateJSONBody = []PatchedBulkWritableRackRoleRequest

// DcimRackRolesBulkUpdateJSONBody defines parameters for DcimRackRolesBulkUpdate.
type DcimRackRolesBulkUpdateJSONBody = []BulkWritableRackRoleRequest

// DcimRackRolesNotesListParams defines parameters for DcimRackRolesNotesList.
type DcimRackRolesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRacksBulkDestroyJSONBody defines parameters for DcimRacksBulkDestroy.
type DcimRacksBulkDestroyJSONBody = []BulkOperationRequest

// DcimRacksListParams defines parameters for DcimRacksList.
type DcimRacksListParams struct {
	AssetTag       *[]string             `form:"asset_tag,omitempty" json:"asset_tag,omitempty"`
	AssetTagIc     *[]string             `form:"asset_tag__ic,omitempty" json:"asset_tag__ic,omitempty"`
	AssetTagIe     *[]string             `form:"asset_tag__ie,omitempty" json:"asset_tag__ie,omitempty"`
	AssetTagIew    *[]string             `form:"asset_tag__iew,omitempty" json:"asset_tag__iew,omitempty"`
	AssetTagIre    *[]string             `form:"asset_tag__ire,omitempty" json:"asset_tag__ire,omitempty"`
	AssetTagIsw    *[]string             `form:"asset_tag__isw,omitempty" json:"asset_tag__isw,omitempty"`
	AssetTagN      *[]string             `form:"asset_tag__n,omitempty" json:"asset_tag__n,omitempty"`
	AssetTagNic    *[]string             `form:"asset_tag__nic,omitempty" json:"asset_tag__nic,omitempty"`
	AssetTagNie    *[]string             `form:"asset_tag__nie,omitempty" json:"asset_tag__nie,omitempty"`
	AssetTagNiew   *[]string             `form:"asset_tag__niew,omitempty" json:"asset_tag__niew,omitempty"`
	AssetTagNire   *[]string             `form:"asset_tag__nire,omitempty" json:"asset_tag__nire,omitempty"`
	AssetTagNisw   *[]string             `form:"asset_tag__nisw,omitempty" json:"asset_tag__nisw,omitempty"`
	AssetTagNre    *[]string             `form:"asset_tag__nre,omitempty" json:"asset_tag__nre,omitempty"`
	AssetTagRe     *[]string             `form:"asset_tag__re,omitempty" json:"asset_tag__re,omitempty"`
	Comments       *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc     *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe     *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew    *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre    *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw    *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN      *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic    *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie    *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew   *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire   *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw   *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre    *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe     *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	DescUnits      *bool                 `form:"desc_units,omitempty" json:"desc_units,omitempty"`
	Devices        *[]openapi_types.UUID `form:"devices,omitempty" json:"devices,omitempty"`
	DevicesN       *[]openapi_types.UUID `form:"devices__n,omitempty" json:"devices__n,omitempty"`
	FacilityId     *[]string             `form:"facility_id,omitempty" json:"facility_id,omitempty"`
	FacilityIdIc   *[]string             `form:"facility_id__ic,omitempty" json:"facility_id__ic,omitempty"`
	FacilityIdIe   *[]string             `form:"facility_id__ie,omitempty" json:"facility_id__ie,omitempty"`
	FacilityIdIew  *[]string             `form:"facility_id__iew,omitempty" json:"facility_id__iew,omitempty"`
	FacilityIdIre  *[]string             `form:"facility_id__ire,omitempty" json:"facility_id__ire,omitempty"`
	FacilityIdIsw  *[]string             `form:"facility_id__isw,omitempty" json:"facility_id__isw,omitempty"`
	FacilityIdN    *[]string             `form:"facility_id__n,omitempty" json:"facility_id__n,omitempty"`
	FacilityIdNic  *[]string             `form:"facility_id__nic,omitempty" json:"facility_id__nic,omitempty"`
	FacilityIdNie  *[]string             `form:"facility_id__nie,omitempty" json:"facility_id__nie,omitempty"`
	FacilityIdNiew *[]string             `form:"facility_id__niew,omitempty" json:"facility_id__niew,omitempty"`
	FacilityIdNire *[]string             `form:"facility_id__nire,omitempty" json:"facility_id__nire,omitempty"`
	FacilityIdNisw *[]string             `form:"facility_id__nisw,omitempty" json:"facility_id__nisw,omitempty"`
	FacilityIdNre  *[]string             `form:"facility_id__nre,omitempty" json:"facility_id__nre,omitempty"`
	FacilityIdRe   *[]string             `form:"facility_id__re,omitempty" json:"facility_id__re,omitempty"`

	// Group Rack group (slug)
	Group *[]openapi_types.UUID `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Rack group (slug)
	GroupN *[]openapi_types.UUID `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Rack group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Rack group (ID)
	GroupIdN *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasPowerFeeds Has power feeds
	HasPowerFeeds *bool `form:"has_power_feeds,omitempty" json:"has_power_feeds,omitempty"`

	// HasReservations Has reservations
	HasReservations *bool                 `form:"has_reservations,omitempty" json:"has_reservations,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset        *int    `form:"offset,omitempty" json:"offset,omitempty"`
	OuterDepth    *[]int  `form:"outer_depth,omitempty" json:"outer_depth,omitempty"`
	OuterDepthGt  *[]int  `form:"outer_depth__gt,omitempty" json:"outer_depth__gt,omitempty"`
	OuterDepthGte *[]int  `form:"outer_depth__gte,omitempty" json:"outer_depth__gte,omitempty"`
	OuterDepthLt  *[]int  `form:"outer_depth__lt,omitempty" json:"outer_depth__lt,omitempty"`
	OuterDepthLte *[]int  `form:"outer_depth__lte,omitempty" json:"outer_depth__lte,omitempty"`
	OuterDepthN   *[]int  `form:"outer_depth__n,omitempty" json:"outer_depth__n,omitempty"`
	OuterUnit     *string `form:"outer_unit,omitempty" json:"outer_unit,omitempty"`
	OuterUnitN    *string `form:"outer_unit__n,omitempty" json:"outer_unit__n,omitempty"`
	OuterWidth    *[]int  `form:"outer_width,omitempty" json:"outer_width,omitempty"`
	OuterWidthGt  *[]int  `form:"outer_width__gt,omitempty" json:"outer_width__gt,omitempty"`
	OuterWidthGte *[]int  `form:"outer_width__gte,omitempty" json:"outer_width__gte,omitempty"`
	OuterWidthLt  *[]int  `form:"outer_width__lt,omitempty" json:"outer_width__lt,omitempty"`
	OuterWidthLte *[]int  `form:"outer_width__lte,omitempty" json:"outer_width__lte,omitempty"`
	OuterWidthN   *[]int  `form:"outer_width__n,omitempty" json:"outer_width__n,omitempty"`

	// PowerFeeds Power feeds (name or ID)
	PowerFeeds *[]openapi_types.UUID `form:"power_feeds,omitempty" json:"power_feeds,omitempty"`

	// PowerFeedsN Power feeds (name or ID)
	PowerFeedsN *[]openapi_types.UUID `form:"power_feeds__n,omitempty" json:"power_feeds__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN     *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`
	Reservations  *[]openapi_types.UUID `form:"reservations,omitempty" json:"reservations,omitempty"`
	ReservationsN *[]openapi_types.UUID `form:"reservations__n,omitempty" json:"reservations__n,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *[]openapi_types.UUID `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`
	Serial  *string               `form:"serial,omitempty" json:"serial,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN  *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
	Type       *[]string             `form:"type,omitempty" json:"type,omitempty"`
	TypeN      *[]string             `form:"type__n,omitempty" json:"type__n,omitempty"`
	UHeight    *[]int                `form:"u_height,omitempty" json:"u_height,omitempty"`
	UHeightGt  *[]int                `form:"u_height__gt,omitempty" json:"u_height__gt,omitempty"`
	UHeightGte *[]int                `form:"u_height__gte,omitempty" json:"u_height__gte,omitempty"`
	UHeightLt  *[]int                `form:"u_height__lt,omitempty" json:"u_height__lt,omitempty"`
	UHeightLte *[]int                `form:"u_height__lte,omitempty" json:"u_height__lte,omitempty"`
	UHeightN   *[]int                `form:"u_height__n,omitempty" json:"u_height__n,omitempty"`

	// Width Rail-to-rail width
	Width *[]int `form:"width,omitempty" json:"width,omitempty"`

	// WidthN Rail-to-rail width
	WidthN *[]int `form:"width__n,omitempty" json:"width__n,omitempty"`
}

// DcimRacksBulkPartialUpdateJSONBody defines parameters for DcimRacksBulkPartialUpdate.
type DcimRacksBulkPartialUpdateJSONBody = []PatchedBulkWritableRackRequest

// DcimRacksBulkUpdateJSONBody defines parameters for DcimRacksBulkUpdate.
type DcimRacksBulkUpdateJSONBody = []BulkWritableRackRequest

// DcimRacksElevationListParams defines parameters for DcimRacksElevationList.
type DcimRacksElevationListParams struct {
	AssetTag        *[]string                         `form:"asset_tag,omitempty" json:"asset_tag,omitempty"`
	AssetTagIc      *[]string                         `form:"asset_tag__ic,omitempty" json:"asset_tag__ic,omitempty"`
	AssetTagIe      *[]string                         `form:"asset_tag__ie,omitempty" json:"asset_tag__ie,omitempty"`
	AssetTagIew     *[]string                         `form:"asset_tag__iew,omitempty" json:"asset_tag__iew,omitempty"`
	AssetTagIre     *[]string                         `form:"asset_tag__ire,omitempty" json:"asset_tag__ire,omitempty"`
	AssetTagIsw     *[]string                         `form:"asset_tag__isw,omitempty" json:"asset_tag__isw,omitempty"`
	AssetTagN       *[]string                         `form:"asset_tag__n,omitempty" json:"asset_tag__n,omitempty"`
	AssetTagNic     *[]string                         `form:"asset_tag__nic,omitempty" json:"asset_tag__nic,omitempty"`
	AssetTagNie     *[]string                         `form:"asset_tag__nie,omitempty" json:"asset_tag__nie,omitempty"`
	AssetTagNiew    *[]string                         `form:"asset_tag__niew,omitempty" json:"asset_tag__niew,omitempty"`
	AssetTagNire    *[]string                         `form:"asset_tag__nire,omitempty" json:"asset_tag__nire,omitempty"`
	AssetTagNisw    *[]string                         `form:"asset_tag__nisw,omitempty" json:"asset_tag__nisw,omitempty"`
	AssetTagNre     *[]string                         `form:"asset_tag__nre,omitempty" json:"asset_tag__nre,omitempty"`
	AssetTagRe      *[]string                         `form:"asset_tag__re,omitempty" json:"asset_tag__re,omitempty"`
	Comments        *[]string                         `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc      *[]string                         `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe      *[]string                         `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew     *[]string                         `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre     *[]string                         `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw     *[]string                         `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN       *[]string                         `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic     *[]string                         `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie     *[]string                         `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew    *[]string                         `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire    *[]string                         `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw    *[]string                         `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre     *[]string                         `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe      *[]string                         `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Created         *openapi_types.Date               `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date               `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date               `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	DescUnits       *bool                             `form:"desc_units,omitempty" json:"desc_units,omitempty"`
	Devices         *[]openapi_types.UUID             `form:"devices,omitempty" json:"devices,omitempty"`
	DevicesN        *[]openapi_types.UUID             `form:"devices__n,omitempty" json:"devices__n,omitempty"`
	DisplayFullname *bool                             `form:"display_fullname,omitempty" json:"display_fullname,omitempty"`
	Exclude         *openapi_types.UUID               `form:"exclude,omitempty" json:"exclude,omitempty"`
	ExpandDevices   *bool                             `form:"expand_devices,omitempty" json:"expand_devices,omitempty"`
	Face            *DcimRacksElevationListParamsFace `form:"face,omitempty" json:"face,omitempty"`
	FacilityId      *[]string                         `form:"facility_id,omitempty" json:"facility_id,omitempty"`
	FacilityIdIc    *[]string                         `form:"facility_id__ic,omitempty" json:"facility_id__ic,omitempty"`
	FacilityIdIe    *[]string                         `form:"facility_id__ie,omitempty" json:"facility_id__ie,omitempty"`
	FacilityIdIew   *[]string                         `form:"facility_id__iew,omitempty" json:"facility_id__iew,omitempty"`
	FacilityIdIre   *[]string                         `form:"facility_id__ire,omitempty" json:"facility_id__ire,omitempty"`
	FacilityIdIsw   *[]string                         `form:"facility_id__isw,omitempty" json:"facility_id__isw,omitempty"`
	FacilityIdN     *[]string                         `form:"facility_id__n,omitempty" json:"facility_id__n,omitempty"`
	FacilityIdNic   *[]string                         `form:"facility_id__nic,omitempty" json:"facility_id__nic,omitempty"`
	FacilityIdNie   *[]string                         `form:"facility_id__nie,omitempty" json:"facility_id__nie,omitempty"`
	FacilityIdNiew  *[]string                         `form:"facility_id__niew,omitempty" json:"facility_id__niew,omitempty"`
	FacilityIdNire  *[]string                         `form:"facility_id__nire,omitempty" json:"facility_id__nire,omitempty"`
	FacilityIdNisw  *[]string                         `form:"facility_id__nisw,omitempty" json:"facility_id__nisw,omitempty"`
	FacilityIdNre   *[]string                         `form:"facility_id__nre,omitempty" json:"facility_id__nre,omitempty"`
	FacilityIdRe    *[]string                         `form:"facility_id__re,omitempty" json:"facility_id__re,omitempty"`

	// Group Rack group (slug)
	Group *[]openapi_types.UUID `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Rack group (slug)
	GroupN *[]openapi_types.UUID `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Rack group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Rack group (ID)
	GroupIdN *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasPowerFeeds Has power feeds
	HasPowerFeeds *bool `form:"has_power_feeds,omitempty" json:"has_power_feeds,omitempty"`

	// HasReservations Has reservations
	HasReservations *bool                 `form:"has_reservations,omitempty" json:"has_reservations,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IncludeImages   *bool                 `form:"include_images,omitempty" json:"include_images,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`
	LegendWidth     *int                  `form:"legend_width,omitempty" json:"legend_width,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset        *int    `form:"offset,omitempty" json:"offset,omitempty"`
	OuterDepth    *[]int  `form:"outer_depth,omitempty" json:"outer_depth,omitempty"`
	OuterDepthGt  *[]int  `form:"outer_depth__gt,omitempty" json:"outer_depth__gt,omitempty"`
	OuterDepthGte *[]int  `form:"outer_depth__gte,omitempty" json:"outer_depth__gte,omitempty"`
	OuterDepthLt  *[]int  `form:"outer_depth__lt,omitempty" json:"outer_depth__lt,omitempty"`
	OuterDepthLte *[]int  `form:"outer_depth__lte,omitempty" json:"outer_depth__lte,omitempty"`
	OuterDepthN   *[]int  `form:"outer_depth__n,omitempty" json:"outer_depth__n,omitempty"`
	OuterUnit     *string `form:"outer_unit,omitempty" json:"outer_unit,omitempty"`
	OuterUnitN    *string `form:"outer_unit__n,omitempty" json:"outer_unit__n,omitempty"`
	OuterWidth    *[]int  `form:"outer_width,omitempty" json:"outer_width,omitempty"`
	OuterWidthGt  *[]int  `form:"outer_width__gt,omitempty" json:"outer_width__gt,omitempty"`
	OuterWidthGte *[]int  `form:"outer_width__gte,omitempty" json:"outer_width__gte,omitempty"`
	OuterWidthLt  *[]int  `form:"outer_width__lt,omitempty" json:"outer_width__lt,omitempty"`
	OuterWidthLte *[]int  `form:"outer_width__lte,omitempty" json:"outer_width__lte,omitempty"`
	OuterWidthN   *[]int  `form:"outer_width__n,omitempty" json:"outer_width__n,omitempty"`

	// PowerFeeds Power feeds (name or ID)
	PowerFeeds *[]openapi_types.UUID `form:"power_feeds,omitempty" json:"power_feeds,omitempty"`

	// PowerFeedsN Power feeds (name or ID)
	PowerFeedsN *[]openapi_types.UUID `form:"power_feeds__n,omitempty" json:"power_feeds__n,omitempty"`
	Q           *string               `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN     *[]openapi_types.UUID               `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`
	Render        *DcimRacksElevationListParamsRender `form:"render,omitempty" json:"render,omitempty"`
	Reservations  *[]openapi_types.UUID               `form:"reservations,omitempty" json:"reservations,omitempty"`
	ReservationsN *[]openapi_types.UUID               `form:"reservations__n,omitempty" json:"reservations__n,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *[]openapi_types.UUID `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`
	Serial  *string               `form:"serial,omitempty" json:"serial,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN  *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
	Type       *[]string             `form:"type,omitempty" json:"type,omitempty"`
	TypeN      *[]string             `form:"type__n,omitempty" json:"type__n,omitempty"`
	UHeight    *[]int                `form:"u_height,omitempty" json:"u_height,omitempty"`
	UHeightGt  *[]int                `form:"u_height__gt,omitempty" json:"u_height__gt,omitempty"`
	UHeightGte *[]int                `form:"u_height__gte,omitempty" json:"u_height__gte,omitempty"`
	UHeightLt  *[]int                `form:"u_height__lt,omitempty" json:"u_height__lt,omitempty"`
	UHeightLte *[]int                `form:"u_height__lte,omitempty" json:"u_height__lte,omitempty"`
	UHeightN   *[]int                `form:"u_height__n,omitempty" json:"u_height__n,omitempty"`
	UnitHeight *int                  `form:"unit_height,omitempty" json:"unit_height,omitempty"`
	UnitWidth  *int                  `form:"unit_width,omitempty" json:"unit_width,omitempty"`

	// Width Rail-to-rail width
	Width *[]int `form:"width,omitempty" json:"width,omitempty"`

	// WidthN Rail-to-rail width
	WidthN *[]int `form:"width__n,omitempty" json:"width__n,omitempty"`
}

// DcimRacksElevationListParamsFace defines parameters for DcimRacksElevationList.
type DcimRacksElevationListParamsFace string

// DcimRacksElevationListParamsRender defines parameters for DcimRacksElevationList.
type DcimRacksElevationListParamsRender string

// DcimRacksNotesListParams defines parameters for DcimRacksNotesList.
type DcimRacksNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRearPortTemplatesBulkDestroyJSONBody defines parameters for DcimRearPortTemplatesBulkDestroy.
type DcimRearPortTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// DcimRearPortTemplatesListParams defines parameters for DcimRearPortTemplatesList.
type DcimRearPortTemplatesListParams struct {
	// Description Description
	Description *[]string `form:"description,omitempty" json:"description,omitempty"`

	// DescriptionIc Description
	DescriptionIc *[]string `form:"description__ic,omitempty" json:"description__ic,omitempty"`

	// DescriptionIe Description
	DescriptionIe *[]string `form:"description__ie,omitempty" json:"description__ie,omitempty"`

	// DescriptionIew Description
	DescriptionIew *[]string `form:"description__iew,omitempty" json:"description__iew,omitempty"`

	// DescriptionIre Description
	DescriptionIre *[]string `form:"description__ire,omitempty" json:"description__ire,omitempty"`

	// DescriptionIsw Description
	DescriptionIsw *[]string `form:"description__isw,omitempty" json:"description__isw,omitempty"`

	// DescriptionN Description
	DescriptionN *[]string `form:"description__n,omitempty" json:"description__n,omitempty"`

	// DescriptionNic Description
	DescriptionNic *[]string `form:"description__nic,omitempty" json:"description__nic,omitempty"`

	// DescriptionNie Description
	DescriptionNie *[]string `form:"description__nie,omitempty" json:"description__nie,omitempty"`

	// DescriptionNiew Description
	DescriptionNiew *[]string `form:"description__niew,omitempty" json:"description__niew,omitempty"`

	// DescriptionNire Description
	DescriptionNire *[]string `form:"description__nire,omitempty" json:"description__nire,omitempty"`

	// DescriptionNisw Description
	DescriptionNisw *[]string `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`

	// DescriptionNre Description
	DescriptionNre *[]string `form:"description__nre,omitempty" json:"description__nre,omitempty"`

	// DescriptionRe Description
	DescriptionRe *[]string `form:"description__re,omitempty" json:"description__re,omitempty"`

	// DeviceType Device type (slug or ID)
	DeviceType *[]openapi_types.UUID `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device type (slug or ID)
	DeviceTypeN *[]openapi_types.UUID `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DevicetypeId Device type (ID)
	DevicetypeId *[]openapi_types.UUID `form:"devicetype_id,omitempty" json:"devicetype_id,omitempty"`

	// DevicetypeIdN Device type (ID)
	DevicetypeIdN *[]openapi_types.UUID `form:"devicetype_id__n,omitempty" json:"devicetype_id__n,omitempty"`

	// FrontPortTemplates Front port templates
	FrontPortTemplates *[]openapi_types.UUID `form:"front_port_templates,omitempty" json:"front_port_templates,omitempty"`

	// FrontPortTemplatesN Front port templates
	FrontPortTemplatesN *[]openapi_types.UUID `form:"front_port_templates__n,omitempty" json:"front_port_templates__n,omitempty"`

	// HasFrontPortTemplates Has front port templates
	HasFrontPortTemplates *bool `form:"has_front_port_templates,omitempty" json:"has_front_port_templates,omitempty"`

	// Id ID
	Id *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// IdIc ID
	IdIc *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe ID
	IdIe *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew ID
	IdIew *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre ID
	IdIre *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw ID
	IdIsw *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN ID
	IdN *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic ID
	IdNic *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie ID
	IdNie *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew ID
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire ID
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw ID
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre ID
	IdNre *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe ID
	IdRe *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Label Label
	Label *[]string `form:"label,omitempty" json:"label,omitempty"`

	// LabelIc Label
	LabelIc *[]string `form:"label__ic,omitempty" json:"label__ic,omitempty"`

	// LabelIe Label
	LabelIe *[]string `form:"label__ie,omitempty" json:"label__ie,omitempty"`

	// LabelIew Label
	LabelIew *[]string `form:"label__iew,omitempty" json:"label__iew,omitempty"`

	// LabelIre Label
	LabelIre *[]string `form:"label__ire,omitempty" json:"label__ire,omitempty"`

	// LabelIsw Label
	LabelIsw *[]string `form:"label__isw,omitempty" json:"label__isw,omitempty"`

	// LabelN Label
	LabelN *[]string `form:"label__n,omitempty" json:"label__n,omitempty"`

	// LabelNic Label
	LabelNic *[]string `form:"label__nic,omitempty" json:"label__nic,omitempty"`

	// LabelNie Label
	LabelNie *[]string `form:"label__nie,omitempty" json:"label__nie,omitempty"`

	// LabelNiew Label
	LabelNiew *[]string `form:"label__niew,omitempty" json:"label__niew,omitempty"`

	// LabelNire Label
	LabelNire *[]string `form:"label__nire,omitempty" json:"label__nire,omitempty"`

	// LabelNisw Label
	LabelNisw *[]string `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`

	// LabelNre Label
	LabelNre *[]string `form:"label__nre,omitempty" json:"label__nre,omitempty"`

	// LabelRe Label
	LabelRe *[]string `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name Name
	Name *[]string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc Name
	NameIc *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe Name
	NameIe *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew Name
	NameIew *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre Name
	NameIre *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw Name
	NameIsw *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN Name
	NameN *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic Name
	NameNic *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie Name
	NameNie *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew Name
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire Name
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw Name
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre Name
	NameNre *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe Name
	NameRe *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset       *int   `form:"offset,omitempty" json:"offset,omitempty"`
	Positions    *[]int `form:"positions,omitempty" json:"positions,omitempty"`
	PositionsGt  *[]int `form:"positions__gt,omitempty" json:"positions__gt,omitempty"`
	PositionsGte *[]int `form:"positions__gte,omitempty" json:"positions__gte,omitempty"`
	PositionsLt  *[]int `form:"positions__lt,omitempty" json:"positions__lt,omitempty"`
	PositionsLte *[]int `form:"positions__lte,omitempty" json:"positions__lte,omitempty"`
	PositionsN   *[]int `form:"positions__n,omitempty" json:"positions__n,omitempty"`

	// Q Search
	Q     *string `form:"q,omitempty" json:"q,omitempty"`
	Type  *string `form:"type,omitempty" json:"type,omitempty"`
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimRearPortTemplatesBulkPartialUpdateJSONBody defines parameters for DcimRearPortTemplatesBulkPartialUpdate.
type DcimRearPortTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableRearPortTemplateRequest

// DcimRearPortTemplatesBulkUpdateJSONBody defines parameters for DcimRearPortTemplatesBulkUpdate.
type DcimRearPortTemplatesBulkUpdateJSONBody = []BulkWritableRearPortTemplateRequest

// DcimRearPortTemplatesNotesListParams defines parameters for DcimRearPortTemplatesNotesList.
type DcimRearPortTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRearPortsBulkDestroyJSONBody defines parameters for DcimRearPortsBulkDestroy.
type DcimRearPortsBulkDestroyJSONBody = []BulkOperationRequest

// DcimRearPortsListParams defines parameters for DcimRearPortsList.
type DcimRearPortsListParams struct {
	// Cable Cable
	Cable *[]openapi_types.UUID `form:"cable,omitempty" json:"cable,omitempty"`

	// CableN Cable
	CableN          *[]openapi_types.UUID `form:"cable__n,omitempty" json:"cable__n,omitempty"`
	Cabled          *bool                 `form:"cabled,omitempty" json:"cabled,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`

	// FrontPorts Front ports (name or ID)
	FrontPorts *[]openapi_types.UUID `form:"front_ports,omitempty" json:"front_ports,omitempty"`

	// FrontPortsN Front ports (name or ID)
	FrontPortsN *[]openapi_types.UUID `form:"front_ports__n,omitempty" json:"front_ports__n,omitempty"`

	// HasFrontPorts Has front ports
	HasFrontPorts *bool                 `form:"has_front_ports,omitempty" json:"has_front_ports,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Label         *[]string             `form:"label,omitempty" json:"label,omitempty"`
	LabelIc       *[]string             `form:"label__ic,omitempty" json:"label__ic,omitempty"`
	LabelIe       *[]string             `form:"label__ie,omitempty" json:"label__ie,omitempty"`
	LabelIew      *[]string             `form:"label__iew,omitempty" json:"label__iew,omitempty"`
	LabelIre      *[]string             `form:"label__ire,omitempty" json:"label__ire,omitempty"`
	LabelIsw      *[]string             `form:"label__isw,omitempty" json:"label__isw,omitempty"`
	LabelN        *[]string             `form:"label__n,omitempty" json:"label__n,omitempty"`
	LabelNic      *[]string             `form:"label__nic,omitempty" json:"label__nic,omitempty"`
	LabelNie      *[]string             `form:"label__nie,omitempty" json:"label__nie,omitempty"`
	LabelNiew     *[]string             `form:"label__niew,omitempty" json:"label__niew,omitempty"`
	LabelNire     *[]string             `form:"label__nire,omitempty" json:"label__nire,omitempty"`
	LabelNisw     *[]string             `form:"label__nisw,omitempty" json:"label__nisw,omitempty"`
	LabelNre      *[]string             `form:"label__nre,omitempty" json:"label__nre,omitempty"`
	LabelRe       *[]string             `form:"label__re,omitempty" json:"label__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset       *int   `form:"offset,omitempty" json:"offset,omitempty"`
	Positions    *[]int `form:"positions,omitempty" json:"positions,omitempty"`
	PositionsGt  *[]int `form:"positions__gt,omitempty" json:"positions__gt,omitempty"`
	PositionsGte *[]int `form:"positions__gte,omitempty" json:"positions__gte,omitempty"`
	PositionsLt  *[]int `form:"positions__lt,omitempty" json:"positions__lt,omitempty"`
	PositionsLte *[]int `form:"positions__lte,omitempty" json:"positions__lte,omitempty"`
	PositionsN   *[]int `form:"positions__n,omitempty" json:"positions__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
	Type    *string               `form:"type,omitempty" json:"type,omitempty"`
	TypeN   *string               `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// DcimRearPortsBulkPartialUpdateJSONBody defines parameters for DcimRearPortsBulkPartialUpdate.
type DcimRearPortsBulkPartialUpdateJSONBody = []PatchedBulkWritableRearPortRequest

// DcimRearPortsBulkUpdateJSONBody defines parameters for DcimRearPortsBulkUpdate.
type DcimRearPortsBulkUpdateJSONBody = []BulkWritableRearPortRequest

// DcimRearPortsNotesListParams defines parameters for DcimRearPortsNotesList.
type DcimRearPortsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimRegionsBulkDestroyJSONBody defines parameters for DcimRegionsBulkDestroy.
type DcimRegionsBulkDestroyJSONBody = []BulkOperationRequest

// DcimRegionsListParams defines parameters for DcimRegionsList.
type DcimRegionsListParams struct {
	// Children Children (slug or ID)
	Children *[]openapi_types.UUID `form:"children,omitempty" json:"children,omitempty"`

	// ChildrenN Children (slug or ID)
	ChildrenN       *[]openapi_types.UUID `form:"children__n,omitempty" json:"children__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// HasChildren Has children
	HasChildren *bool `form:"has_children,omitempty" json:"has_children,omitempty"`

	// HasSites Has sites
	HasSites       *bool                 `form:"has_sites,omitempty" json:"has_sites,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent region (slug)
	Parent *[]string `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Parent region (slug)
	ParentN *[]string `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// ParentId Parent region (ID)
	ParentId *[]openapi_types.UUID `form:"parent_id,omitempty" json:"parent_id,omitempty"`

	// ParentIdN Parent region (ID)
	ParentIdN *[]openapi_types.UUID `form:"parent_id__n,omitempty" json:"parent_id__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Sites Sites (slug or ID)
	Sites *[]openapi_types.UUID `form:"sites,omitempty" json:"sites,omitempty"`

	// SitesN Sites (slug or ID)
	SitesN   *[]openapi_types.UUID `form:"sites__n,omitempty" json:"sites__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// DcimRegionsBulkPartialUpdateJSONBody defines parameters for DcimRegionsBulkPartialUpdate.
type DcimRegionsBulkPartialUpdateJSONBody = []PatchedBulkWritableRegionRequest

// DcimRegionsBulkUpdateJSONBody defines parameters for DcimRegionsBulkUpdate.
type DcimRegionsBulkUpdateJSONBody = []BulkWritableRegionRequest

// DcimRegionsNotesListParams defines parameters for DcimRegionsNotesList.
type DcimRegionsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimSitesBulkDestroyJSONBody defines parameters for DcimSitesBulkDestroy.
type DcimSitesBulkDestroyJSONBody = []BulkOperationRequest

// DcimSitesListParams defines parameters for DcimSitesList.
type DcimSitesListParams struct {
	Asn                  *[]int                `form:"asn,omitempty" json:"asn,omitempty"`
	AsnGt                *[]int                `form:"asn__gt,omitempty" json:"asn__gt,omitempty"`
	AsnGte               *[]int                `form:"asn__gte,omitempty" json:"asn__gte,omitempty"`
	AsnLt                *[]int                `form:"asn__lt,omitempty" json:"asn__lt,omitempty"`
	AsnLte               *[]int                `form:"asn__lte,omitempty" json:"asn__lte,omitempty"`
	AsnN                 *[]int                `form:"asn__n,omitempty" json:"asn__n,omitempty"`
	CircuitTerminations  *[]openapi_types.UUID `form:"circuit_terminations,omitempty" json:"circuit_terminations,omitempty"`
	CircuitTerminationsN *[]openapi_types.UUID `form:"circuit_terminations__n,omitempty" json:"circuit_terminations__n,omitempty"`
	Clusters             *[]openapi_types.UUID `form:"clusters,omitempty" json:"clusters,omitempty"`
	ClustersN            *[]openapi_types.UUID `form:"clusters__n,omitempty" json:"clusters__n,omitempty"`
	Comments             *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc           *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe           *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew          *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre          *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw          *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN            *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic          *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie          *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew         *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire         *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw         *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre          *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe           *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	ContactEmail         *[]string             `form:"contact_email,omitempty" json:"contact_email,omitempty"`
	ContactEmailIc       *[]string             `form:"contact_email__ic,omitempty" json:"contact_email__ic,omitempty"`
	ContactEmailIe       *[]string             `form:"contact_email__ie,omitempty" json:"contact_email__ie,omitempty"`
	ContactEmailIew      *[]string             `form:"contact_email__iew,omitempty" json:"contact_email__iew,omitempty"`
	ContactEmailIre      *[]string             `form:"contact_email__ire,omitempty" json:"contact_email__ire,omitempty"`
	ContactEmailIsw      *[]string             `form:"contact_email__isw,omitempty" json:"contact_email__isw,omitempty"`
	ContactEmailN        *[]string             `form:"contact_email__n,omitempty" json:"contact_email__n,omitempty"`
	ContactEmailNic      *[]string             `form:"contact_email__nic,omitempty" json:"contact_email__nic,omitempty"`
	ContactEmailNie      *[]string             `form:"contact_email__nie,omitempty" json:"contact_email__nie,omitempty"`
	ContactEmailNiew     *[]string             `form:"contact_email__niew,omitempty" json:"contact_email__niew,omitempty"`
	ContactEmailNire     *[]string             `form:"contact_email__nire,omitempty" json:"contact_email__nire,omitempty"`
	ContactEmailNisw     *[]string             `form:"contact_email__nisw,omitempty" json:"contact_email__nisw,omitempty"`
	ContactEmailNre      *[]string             `form:"contact_email__nre,omitempty" json:"contact_email__nre,omitempty"`
	ContactEmailRe       *[]string             `form:"contact_email__re,omitempty" json:"contact_email__re,omitempty"`
	ContactName          *[]string             `form:"contact_name,omitempty" json:"contact_name,omitempty"`
	ContactNameIc        *[]string             `form:"contact_name__ic,omitempty" json:"contact_name__ic,omitempty"`
	ContactNameIe        *[]string             `form:"contact_name__ie,omitempty" json:"contact_name__ie,omitempty"`
	ContactNameIew       *[]string             `form:"contact_name__iew,omitempty" json:"contact_name__iew,omitempty"`
	ContactNameIre       *[]string             `form:"contact_name__ire,omitempty" json:"contact_name__ire,omitempty"`
	ContactNameIsw       *[]string             `form:"contact_name__isw,omitempty" json:"contact_name__isw,omitempty"`
	ContactNameN         *[]string             `form:"contact_name__n,omitempty" json:"contact_name__n,omitempty"`
	ContactNameNic       *[]string             `form:"contact_name__nic,omitempty" json:"contact_name__nic,omitempty"`
	ContactNameNie       *[]string             `form:"contact_name__nie,omitempty" json:"contact_name__nie,omitempty"`
	ContactNameNiew      *[]string             `form:"contact_name__niew,omitempty" json:"contact_name__niew,omitempty"`
	ContactNameNire      *[]string             `form:"contact_name__nire,omitempty" json:"contact_name__nire,omitempty"`
	ContactNameNisw      *[]string             `form:"contact_name__nisw,omitempty" json:"contact_name__nisw,omitempty"`
	ContactNameNre       *[]string             `form:"contact_name__nre,omitempty" json:"contact_name__nre,omitempty"`
	ContactNameRe        *[]string             `form:"contact_name__re,omitempty" json:"contact_name__re,omitempty"`
	ContactPhone         *[]string             `form:"contact_phone,omitempty" json:"contact_phone,omitempty"`
	ContactPhoneIc       *[]string             `form:"contact_phone__ic,omitempty" json:"contact_phone__ic,omitempty"`
	ContactPhoneIe       *[]string             `form:"contact_phone__ie,omitempty" json:"contact_phone__ie,omitempty"`
	ContactPhoneIew      *[]string             `form:"contact_phone__iew,omitempty" json:"contact_phone__iew,omitempty"`
	ContactPhoneIre      *[]string             `form:"contact_phone__ire,omitempty" json:"contact_phone__ire,omitempty"`
	ContactPhoneIsw      *[]string             `form:"contact_phone__isw,omitempty" json:"contact_phone__isw,omitempty"`
	ContactPhoneN        *[]string             `form:"contact_phone__n,omitempty" json:"contact_phone__n,omitempty"`
	ContactPhoneNic      *[]string             `form:"contact_phone__nic,omitempty" json:"contact_phone__nic,omitempty"`
	ContactPhoneNie      *[]string             `form:"contact_phone__nie,omitempty" json:"contact_phone__nie,omitempty"`
	ContactPhoneNiew     *[]string             `form:"contact_phone__niew,omitempty" json:"contact_phone__niew,omitempty"`
	ContactPhoneNire     *[]string             `form:"contact_phone__nire,omitempty" json:"contact_phone__nire,omitempty"`
	ContactPhoneNisw     *[]string             `form:"contact_phone__nisw,omitempty" json:"contact_phone__nisw,omitempty"`
	ContactPhoneNre      *[]string             `form:"contact_phone__nre,omitempty" json:"contact_phone__nre,omitempty"`
	ContactPhoneRe       *[]string             `form:"contact_phone__re,omitempty" json:"contact_phone__re,omitempty"`
	Created              *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte           *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte           *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description          *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc        *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe        *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew       *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre       *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw       *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN         *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic       *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie       *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew      *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire      *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw      *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre       *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe        *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// Devices Devices (name or ID)
	Devices *[]openapi_types.UUID `form:"devices,omitempty" json:"devices,omitempty"`

	// DevicesN Devices (name or ID)
	DevicesN     *[]openapi_types.UUID `form:"devices__n,omitempty" json:"devices__n,omitempty"`
	Facility     *[]string             `form:"facility,omitempty" json:"facility,omitempty"`
	FacilityIc   *[]string             `form:"facility__ic,omitempty" json:"facility__ic,omitempty"`
	FacilityIe   *[]string             `form:"facility__ie,omitempty" json:"facility__ie,omitempty"`
	FacilityIew  *[]string             `form:"facility__iew,omitempty" json:"facility__iew,omitempty"`
	FacilityIre  *[]string             `form:"facility__ire,omitempty" json:"facility__ire,omitempty"`
	FacilityIsw  *[]string             `form:"facility__isw,omitempty" json:"facility__isw,omitempty"`
	FacilityN    *[]string             `form:"facility__n,omitempty" json:"facility__n,omitempty"`
	FacilityNic  *[]string             `form:"facility__nic,omitempty" json:"facility__nic,omitempty"`
	FacilityNie  *[]string             `form:"facility__nie,omitempty" json:"facility__nie,omitempty"`
	FacilityNiew *[]string             `form:"facility__niew,omitempty" json:"facility__niew,omitempty"`
	FacilityNire *[]string             `form:"facility__nire,omitempty" json:"facility__nire,omitempty"`
	FacilityNisw *[]string             `form:"facility__nisw,omitempty" json:"facility__nisw,omitempty"`
	FacilityNre  *[]string             `form:"facility__nre,omitempty" json:"facility__nre,omitempty"`
	FacilityRe   *[]string             `form:"facility__re,omitempty" json:"facility__re,omitempty"`

	// HasCircuitTerminations Has circuit terminations
	HasCircuitTerminations *bool `form:"has_circuit_terminations,omitempty" json:"has_circuit_terminations,omitempty"`

	// HasClusters Has clusters
	HasClusters *bool `form:"has_clusters,omitempty" json:"has_clusters,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasLocations Has locations
	HasLocations *bool `form:"has_locations,omitempty" json:"has_locations,omitempty"`

	// HasPowerPanels Has power panels
	HasPowerPanels *bool `form:"has_power_panels,omitempty" json:"has_power_panels,omitempty"`

	// HasPrefixes Has prefixes
	HasPrefixes *bool `form:"has_prefixes,omitempty" json:"has_prefixes,omitempty"`

	// HasRackGroups Has rack groups
	HasRackGroups *bool `form:"has_rack_groups,omitempty" json:"has_rack_groups,omitempty"`

	// HasRacks Has racks
	HasRacks *bool `form:"has_racks,omitempty" json:"has_racks,omitempty"`

	// HasVlanGroups Has vlan groups
	HasVlanGroups *bool `form:"has_vlan_groups,omitempty" json:"has_vlan_groups,omitempty"`

	// HasVlans Has vlans
	HasVlans       *bool                 `form:"has_vlans,omitempty" json:"has_vlans,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`
	Latitude       *[]float32            `form:"latitude,omitempty" json:"latitude,omitempty"`
	LatitudeGt     *[]float32            `form:"latitude__gt,omitempty" json:"latitude__gt,omitempty"`
	LatitudeGte    *[]float32            `form:"latitude__gte,omitempty" json:"latitude__gte,omitempty"`
	LatitudeLt     *[]float32            `form:"latitude__lt,omitempty" json:"latitude__lt,omitempty"`
	LatitudeLte    *[]float32            `form:"latitude__lte,omitempty" json:"latitude__lte,omitempty"`
	LatitudeN      *[]float32            `form:"latitude__n,omitempty" json:"latitude__n,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Locations Locations within this Site (slugs or IDs)
	Locations *[]openapi_types.UUID `form:"locations,omitempty" json:"locations,omitempty"`

	// LocationsN Locations within this Site (slugs or IDs)
	LocationsN   *[]openapi_types.UUID `form:"locations__n,omitempty" json:"locations__n,omitempty"`
	Longitude    *[]float32            `form:"longitude,omitempty" json:"longitude,omitempty"`
	LongitudeGt  *[]float32            `form:"longitude__gt,omitempty" json:"longitude__gt,omitempty"`
	LongitudeGte *[]float32            `form:"longitude__gte,omitempty" json:"longitude__gte,omitempty"`
	LongitudeLt  *[]float32            `form:"longitude__lt,omitempty" json:"longitude__lt,omitempty"`
	LongitudeLte *[]float32            `form:"longitude__lte,omitempty" json:"longitude__lte,omitempty"`
	LongitudeN   *[]float32            `form:"longitude__n,omitempty" json:"longitude__n,omitempty"`
	Name         *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc       *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe       *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew      *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre      *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw      *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN        *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic      *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie      *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew     *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire     *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw     *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre      *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe       *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset              *int      `form:"offset,omitempty" json:"offset,omitempty"`
	PhysicalAddress     *[]string `form:"physical_address,omitempty" json:"physical_address,omitempty"`
	PhysicalAddressIc   *[]string `form:"physical_address__ic,omitempty" json:"physical_address__ic,omitempty"`
	PhysicalAddressIe   *[]string `form:"physical_address__ie,omitempty" json:"physical_address__ie,omitempty"`
	PhysicalAddressIew  *[]string `form:"physical_address__iew,omitempty" json:"physical_address__iew,omitempty"`
	PhysicalAddressIre  *[]string `form:"physical_address__ire,omitempty" json:"physical_address__ire,omitempty"`
	PhysicalAddressIsw  *[]string `form:"physical_address__isw,omitempty" json:"physical_address__isw,omitempty"`
	PhysicalAddressN    *[]string `form:"physical_address__n,omitempty" json:"physical_address__n,omitempty"`
	PhysicalAddressNic  *[]string `form:"physical_address__nic,omitempty" json:"physical_address__nic,omitempty"`
	PhysicalAddressNie  *[]string `form:"physical_address__nie,omitempty" json:"physical_address__nie,omitempty"`
	PhysicalAddressNiew *[]string `form:"physical_address__niew,omitempty" json:"physical_address__niew,omitempty"`
	PhysicalAddressNire *[]string `form:"physical_address__nire,omitempty" json:"physical_address__nire,omitempty"`
	PhysicalAddressNisw *[]string `form:"physical_address__nisw,omitempty" json:"physical_address__nisw,omitempty"`
	PhysicalAddressNre  *[]string `form:"physical_address__nre,omitempty" json:"physical_address__nre,omitempty"`
	PhysicalAddressRe   *[]string `form:"physical_address__re,omitempty" json:"physical_address__re,omitempty"`

	// PowerPanels Power panels (name or ID)
	PowerPanels *[]openapi_types.UUID `form:"power_panels,omitempty" json:"power_panels,omitempty"`

	// PowerPanelsN Power panels (name or ID)
	PowerPanelsN *[]openapi_types.UUID `form:"power_panels__n,omitempty" json:"power_panels__n,omitempty"`
	Prefixes     *[]openapi_types.UUID `form:"prefixes,omitempty" json:"prefixes,omitempty"`
	PrefixesN    *[]openapi_types.UUID `form:"prefixes__n,omitempty" json:"prefixes__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// RackGroups Rack groups (slug or ID)
	RackGroups *[]openapi_types.UUID `form:"rack_groups,omitempty" json:"rack_groups,omitempty"`

	// RackGroupsN Rack groups (slug or ID)
	RackGroupsN *[]openapi_types.UUID `form:"rack_groups__n,omitempty" json:"rack_groups__n,omitempty"`
	Racks       *[]openapi_types.UUID `form:"racks,omitempty" json:"racks,omitempty"`
	RacksN      *[]openapi_types.UUID `form:"racks__n,omitempty" json:"racks__n,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN           *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`
	ShippingAddress     *[]string             `form:"shipping_address,omitempty" json:"shipping_address,omitempty"`
	ShippingAddressIc   *[]string             `form:"shipping_address__ic,omitempty" json:"shipping_address__ic,omitempty"`
	ShippingAddressIe   *[]string             `form:"shipping_address__ie,omitempty" json:"shipping_address__ie,omitempty"`
	ShippingAddressIew  *[]string             `form:"shipping_address__iew,omitempty" json:"shipping_address__iew,omitempty"`
	ShippingAddressIre  *[]string             `form:"shipping_address__ire,omitempty" json:"shipping_address__ire,omitempty"`
	ShippingAddressIsw  *[]string             `form:"shipping_address__isw,omitempty" json:"shipping_address__isw,omitempty"`
	ShippingAddressN    *[]string             `form:"shipping_address__n,omitempty" json:"shipping_address__n,omitempty"`
	ShippingAddressNic  *[]string             `form:"shipping_address__nic,omitempty" json:"shipping_address__nic,omitempty"`
	ShippingAddressNie  *[]string             `form:"shipping_address__nie,omitempty" json:"shipping_address__nie,omitempty"`
	ShippingAddressNiew *[]string             `form:"shipping_address__niew,omitempty" json:"shipping_address__niew,omitempty"`
	ShippingAddressNire *[]string             `form:"shipping_address__nire,omitempty" json:"shipping_address__nire,omitempty"`
	ShippingAddressNisw *[]string             `form:"shipping_address__nisw,omitempty" json:"shipping_address__nisw,omitempty"`
	ShippingAddressNre  *[]string             `form:"shipping_address__nre,omitempty" json:"shipping_address__nre,omitempty"`
	ShippingAddressRe   *[]string             `form:"shipping_address__re,omitempty" json:"shipping_address__re,omitempty"`
	Slug                *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc              *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe              *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew             *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre             *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw             *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN               *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic             *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie             *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew            *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire            *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw            *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre             *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe              *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Status              *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN             *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag                 *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN                *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// TimeZone Time zone
	TimeZone *[]interface{} `form:"time_zone,omitempty" json:"time_zone,omitempty"`

	// TimeZoneN Time zone
	TimeZoneN *[]interface{} `form:"time_zone__n,omitempty" json:"time_zone__n,omitempty"`

	// VlanGroups Vlan groups (slug or ID)
	VlanGroups *[]openapi_types.UUID `form:"vlan_groups,omitempty" json:"vlan_groups,omitempty"`

	// VlanGroupsN Vlan groups (slug or ID)
	VlanGroupsN *[]openapi_types.UUID `form:"vlan_groups__n,omitempty" json:"vlan_groups__n,omitempty"`
	Vlans       *[]openapi_types.UUID `form:"vlans,omitempty" json:"vlans,omitempty"`
	VlansN      *[]openapi_types.UUID `form:"vlans__n,omitempty" json:"vlans__n,omitempty"`
}

// DcimSitesBulkPartialUpdateJSONBody defines parameters for DcimSitesBulkPartialUpdate.
type DcimSitesBulkPartialUpdateJSONBody = []PatchedBulkWritableSiteRequest

// DcimSitesBulkUpdateJSONBody defines parameters for DcimSitesBulkUpdate.
type DcimSitesBulkUpdateJSONBody = []BulkWritableSiteRequest

// DcimSitesNotesListParams defines parameters for DcimSitesNotesList.
type DcimSitesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// DcimVirtualChassisBulkDestroyJSONBody defines parameters for DcimVirtualChassisBulkDestroy.
type DcimVirtualChassisBulkDestroyJSONBody = []BulkOperationRequest

// DcimVirtualChassisListParams defines parameters for DcimVirtualChassisList.
type DcimVirtualChassisListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Domain     *[]string           `form:"domain,omitempty" json:"domain,omitempty"`
	DomainIc   *[]string           `form:"domain__ic,omitempty" json:"domain__ic,omitempty"`
	DomainIe   *[]string           `form:"domain__ie,omitempty" json:"domain__ie,omitempty"`
	DomainIew  *[]string           `form:"domain__iew,omitempty" json:"domain__iew,omitempty"`
	DomainIre  *[]string           `form:"domain__ire,omitempty" json:"domain__ire,omitempty"`
	DomainIsw  *[]string           `form:"domain__isw,omitempty" json:"domain__isw,omitempty"`
	DomainN    *[]string           `form:"domain__n,omitempty" json:"domain__n,omitempty"`
	DomainNic  *[]string           `form:"domain__nic,omitempty" json:"domain__nic,omitempty"`
	DomainNie  *[]string           `form:"domain__nie,omitempty" json:"domain__nie,omitempty"`
	DomainNiew *[]string           `form:"domain__niew,omitempty" json:"domain__niew,omitempty"`
	DomainNire *[]string           `form:"domain__nire,omitempty" json:"domain__nire,omitempty"`
	DomainNisw *[]string           `form:"domain__nisw,omitempty" json:"domain__nisw,omitempty"`
	DomainNre  *[]string           `form:"domain__nre,omitempty" json:"domain__nre,omitempty"`
	DomainRe   *[]string           `form:"domain__re,omitempty" json:"domain__re,omitempty"`

	// HasMembers Has device members
	HasMembers     *bool                 `form:"has_members,omitempty" json:"has_members,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Master Master (name)
	Master *[]string `form:"master,omitempty" json:"master,omitempty"`

	// MasterN Master (name)
	MasterN *[]string `form:"master__n,omitempty" json:"master__n,omitempty"`

	// MasterId Master (ID)
	MasterId *[]openapi_types.UUID `form:"master_id,omitempty" json:"master_id,omitempty"`

	// MasterIdN Master (ID)
	MasterIdN *[]openapi_types.UUID `form:"master_id__n,omitempty" json:"master_id__n,omitempty"`

	// Members Device members (name or ID)
	Members *[]openapi_types.UUID `form:"members,omitempty" json:"members,omitempty"`

	// MembersN Device members (name or ID)
	MembersN *[]openapi_types.UUID `form:"members__n,omitempty" json:"members__n,omitempty"`
	Name     *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site name (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug)
	Tenant *[]string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug)
	TenantN *[]string `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantId Tenant (ID)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// DcimVirtualChassisBulkPartialUpdateJSONBody defines parameters for DcimVirtualChassisBulkPartialUpdate.
type DcimVirtualChassisBulkPartialUpdateJSONBody = []PatchedBulkWritableVirtualChassisRequest

// DcimVirtualChassisBulkUpdateJSONBody defines parameters for DcimVirtualChassisBulkUpdate.
type DcimVirtualChassisBulkUpdateJSONBody = []BulkWritableVirtualChassisRequest

// DcimVirtualChassisNotesListParams defines parameters for DcimVirtualChassisNotesList.
type DcimVirtualChassisNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasComputedFieldsBulkDestroyJSONBody defines parameters for ExtrasComputedFieldsBulkDestroy.
type ExtrasComputedFieldsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasComputedFieldsListParams defines parameters for ExtrasComputedFieldsList.
type ExtrasComputedFieldsListParams struct {
	ContentType       *string               `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN      *string               `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	FallbackValue     *[]string             `form:"fallback_value,omitempty" json:"fallback_value,omitempty"`
	FallbackValueIc   *[]string             `form:"fallback_value__ic,omitempty" json:"fallback_value__ic,omitempty"`
	FallbackValueIe   *[]string             `form:"fallback_value__ie,omitempty" json:"fallback_value__ie,omitempty"`
	FallbackValueIew  *[]string             `form:"fallback_value__iew,omitempty" json:"fallback_value__iew,omitempty"`
	FallbackValueIre  *[]string             `form:"fallback_value__ire,omitempty" json:"fallback_value__ire,omitempty"`
	FallbackValueIsw  *[]string             `form:"fallback_value__isw,omitempty" json:"fallback_value__isw,omitempty"`
	FallbackValueN    *[]string             `form:"fallback_value__n,omitempty" json:"fallback_value__n,omitempty"`
	FallbackValueNic  *[]string             `form:"fallback_value__nic,omitempty" json:"fallback_value__nic,omitempty"`
	FallbackValueNie  *[]string             `form:"fallback_value__nie,omitempty" json:"fallback_value__nie,omitempty"`
	FallbackValueNiew *[]string             `form:"fallback_value__niew,omitempty" json:"fallback_value__niew,omitempty"`
	FallbackValueNire *[]string             `form:"fallback_value__nire,omitempty" json:"fallback_value__nire,omitempty"`
	FallbackValueNisw *[]string             `form:"fallback_value__nisw,omitempty" json:"fallback_value__nisw,omitempty"`
	FallbackValueNre  *[]string             `form:"fallback_value__nre,omitempty" json:"fallback_value__nre,omitempty"`
	FallbackValueRe   *[]string             `form:"fallback_value__re,omitempty" json:"fallback_value__re,omitempty"`
	Id                *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc              *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe              *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew             *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre             *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw             *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN               *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic             *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie             *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew            *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire            *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw            *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre             *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe              *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q            *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug         *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc       *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe       *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew      *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre      *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw      *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN        *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic      *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie      *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew     *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire     *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw     *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre      *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe       *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Template     *[]string `form:"template,omitempty" json:"template,omitempty"`
	TemplateIc   *[]string `form:"template__ic,omitempty" json:"template__ic,omitempty"`
	TemplateIe   *[]string `form:"template__ie,omitempty" json:"template__ie,omitempty"`
	TemplateIew  *[]string `form:"template__iew,omitempty" json:"template__iew,omitempty"`
	TemplateIre  *[]string `form:"template__ire,omitempty" json:"template__ire,omitempty"`
	TemplateIsw  *[]string `form:"template__isw,omitempty" json:"template__isw,omitempty"`
	TemplateN    *[]string `form:"template__n,omitempty" json:"template__n,omitempty"`
	TemplateNic  *[]string `form:"template__nic,omitempty" json:"template__nic,omitempty"`
	TemplateNie  *[]string `form:"template__nie,omitempty" json:"template__nie,omitempty"`
	TemplateNiew *[]string `form:"template__niew,omitempty" json:"template__niew,omitempty"`
	TemplateNire *[]string `form:"template__nire,omitempty" json:"template__nire,omitempty"`
	TemplateNisw *[]string `form:"template__nisw,omitempty" json:"template__nisw,omitempty"`
	TemplateNre  *[]string `form:"template__nre,omitempty" json:"template__nre,omitempty"`
	TemplateRe   *[]string `form:"template__re,omitempty" json:"template__re,omitempty"`
	Weight       *[]int    `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt     *[]int    `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte    *[]int    `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt     *[]int    `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte    *[]int    `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN      *[]int    `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// ExtrasComputedFieldsBulkPartialUpdateJSONBody defines parameters for ExtrasComputedFieldsBulkPartialUpdate.
type ExtrasComputedFieldsBulkPartialUpdateJSONBody = []PatchedBulkWritableComputedFieldRequest

// ExtrasComputedFieldsBulkUpdateJSONBody defines parameters for ExtrasComputedFieldsBulkUpdate.
type ExtrasComputedFieldsBulkUpdateJSONBody = []BulkWritableComputedFieldRequest

// ExtrasComputedFieldsNotesListParams defines parameters for ExtrasComputedFieldsNotesList.
type ExtrasComputedFieldsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasConfigContextSchemasBulkDestroyJSONBody defines parameters for ExtrasConfigContextSchemasBulkDestroy.
type ExtrasConfigContextSchemasBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasConfigContextSchemasListParams defines parameters for ExtrasConfigContextSchemasList.
type ExtrasConfigContextSchemasListParams struct {
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset            *int    `form:"offset,omitempty" json:"offset,omitempty"`
	OwnerContentType  *string `form:"owner_content_type,omitempty" json:"owner_content_type,omitempty"`
	OwnerContentTypeN *string `form:"owner_content_type__n,omitempty" json:"owner_content_type__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// ExtrasConfigContextSchemasBulkPartialUpdateJSONBody defines parameters for ExtrasConfigContextSchemasBulkPartialUpdate.
type ExtrasConfigContextSchemasBulkPartialUpdateJSONBody = []PatchedBulkWritableConfigContextSchemaRequest

// ExtrasConfigContextSchemasBulkUpdateJSONBody defines parameters for ExtrasConfigContextSchemasBulkUpdate.
type ExtrasConfigContextSchemasBulkUpdateJSONBody = []BulkWritableConfigContextSchemaRequest

// ExtrasConfigContextSchemasNotesListParams defines parameters for ExtrasConfigContextSchemasNotesList.
type ExtrasConfigContextSchemasNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasConfigContextsBulkDestroyJSONBody defines parameters for ExtrasConfigContextsBulkDestroy.
type ExtrasConfigContextsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasConfigContextsListParams defines parameters for ExtrasConfigContextsList.
type ExtrasConfigContextsListParams struct {
	// ClusterGroup Cluster group (slug)
	ClusterGroup *[]string `form:"cluster_group,omitempty" json:"cluster_group,omitempty"`

	// ClusterGroupN Cluster group (slug)
	ClusterGroupN *[]string `form:"cluster_group__n,omitempty" json:"cluster_group__n,omitempty"`

	// ClusterGroupId Cluster group
	ClusterGroupId *[]openapi_types.UUID `form:"cluster_group_id,omitempty" json:"cluster_group_id,omitempty"`

	// ClusterGroupIdN Cluster group
	ClusterGroupIdN *[]openapi_types.UUID `form:"cluster_group_id__n,omitempty" json:"cluster_group_id__n,omitempty"`

	// ClusterId Cluster
	ClusterId *[]openapi_types.UUID `form:"cluster_id,omitempty" json:"cluster_id,omitempty"`

	// ClusterIdN Cluster
	ClusterIdN *[]openapi_types.UUID `form:"cluster_id__n,omitempty" json:"cluster_id__n,omitempty"`

	// DeviceRedundancyGroup Device Redundancy Group (slug or PK)
	DeviceRedundancyGroup *[]openapi_types.UUID `form:"device_redundancy_group,omitempty" json:"device_redundancy_group,omitempty"`

	// DeviceRedundancyGroupN Device Redundancy Group (slug or PK)
	DeviceRedundancyGroupN *[]openapi_types.UUID `form:"device_redundancy_group__n,omitempty" json:"device_redundancy_group__n,omitempty"`

	// DeviceType Device Type (slug)
	DeviceType *[]string `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device Type (slug)
	DeviceTypeN *[]string `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DeviceTypeId Device Type
	DeviceTypeId *[]openapi_types.UUID `form:"device_type_id,omitempty" json:"device_type_id,omitempty"`

	// DeviceTypeIdN Device Type
	DeviceTypeIdN *[]openapi_types.UUID `form:"device_type_id__n,omitempty" json:"device_type_id__n,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IsActive      *bool                 `form:"is_active,omitempty" json:"is_active,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug)
	Location *[]string `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug)
	LocationN *[]string `form:"location__n,omitempty" json:"location__n,omitempty"`

	// LocationId Location (ID)
	LocationId *[]openapi_types.UUID `form:"location_id,omitempty" json:"location_id,omitempty"`

	// LocationIdN Location (ID)
	LocationIdN *[]openapi_types.UUID `form:"location_id__n,omitempty" json:"location_id__n,omitempty"`
	Name        *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc      *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe      *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew     *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre     *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw     *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN       *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic     *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie     *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew    *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire    *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw    *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre     *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe      *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset            *int                  `form:"offset,omitempty" json:"offset,omitempty"`
	OwnerContentType  *string               `form:"owner_content_type,omitempty" json:"owner_content_type,omitempty"`
	OwnerContentTypeN *string               `form:"owner_content_type__n,omitempty" json:"owner_content_type__n,omitempty"`
	OwnerObjectId     *[]openapi_types.UUID `form:"owner_object_id,omitempty" json:"owner_object_id,omitempty"`
	OwnerObjectIdIc   *[]openapi_types.UUID `form:"owner_object_id__ic,omitempty" json:"owner_object_id__ic,omitempty"`
	OwnerObjectIdIe   *[]openapi_types.UUID `form:"owner_object_id__ie,omitempty" json:"owner_object_id__ie,omitempty"`
	OwnerObjectIdIew  *[]openapi_types.UUID `form:"owner_object_id__iew,omitempty" json:"owner_object_id__iew,omitempty"`
	OwnerObjectIdIre  *[]openapi_types.UUID `form:"owner_object_id__ire,omitempty" json:"owner_object_id__ire,omitempty"`
	OwnerObjectIdIsw  *[]openapi_types.UUID `form:"owner_object_id__isw,omitempty" json:"owner_object_id__isw,omitempty"`
	OwnerObjectIdN    *[]openapi_types.UUID `form:"owner_object_id__n,omitempty" json:"owner_object_id__n,omitempty"`
	OwnerObjectIdNic  *[]openapi_types.UUID `form:"owner_object_id__nic,omitempty" json:"owner_object_id__nic,omitempty"`
	OwnerObjectIdNie  *[]openapi_types.UUID `form:"owner_object_id__nie,omitempty" json:"owner_object_id__nie,omitempty"`
	OwnerObjectIdNiew *[]openapi_types.UUID `form:"owner_object_id__niew,omitempty" json:"owner_object_id__niew,omitempty"`
	OwnerObjectIdNire *[]openapi_types.UUID `form:"owner_object_id__nire,omitempty" json:"owner_object_id__nire,omitempty"`
	OwnerObjectIdNisw *[]openapi_types.UUID `form:"owner_object_id__nisw,omitempty" json:"owner_object_id__nisw,omitempty"`
	OwnerObjectIdNre  *[]openapi_types.UUID `form:"owner_object_id__nre,omitempty" json:"owner_object_id__nre,omitempty"`
	OwnerObjectIdRe   *[]openapi_types.UUID `form:"owner_object_id__re,omitempty" json:"owner_object_id__re,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformN Platform (slug)
	PlatformN *[]string `form:"platform__n,omitempty" json:"platform__n,omitempty"`

	// PlatformId Platform
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// PlatformIdN Platform
	PlatformIdN *[]openapi_types.UUID `form:"platform_id__n,omitempty" json:"platform_id__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *[]string `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *[]string `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role
	RoleIdN *[]openapi_types.UUID `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`

	// Schema Schema (slug or PK)
	Schema *[]openapi_types.UUID `form:"schema,omitempty" json:"schema,omitempty"`

	// SchemaN Schema (slug or PK)
	SchemaN *[]openapi_types.UUID `form:"schema__n,omitempty" json:"schema__n,omitempty"`

	// Site Site (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug)
	SiteN *[]string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`

	// Tag Tag (slug)
	Tag *[]string `form:"tag,omitempty" json:"tag,omitempty"`

	// TagN Tag (slug)
	TagN *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug)
	Tenant *[]string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug)
	TenantN *[]string `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant group (slug)
	TenantGroup *[]string `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant group (slug)
	TenantGroupN *[]string `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant group
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant group
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// ExtrasConfigContextsBulkPartialUpdateJSONBody defines parameters for ExtrasConfigContextsBulkPartialUpdate.
type ExtrasConfigContextsBulkPartialUpdateJSONBody = []PatchedBulkWritableConfigContextRequest

// ExtrasConfigContextsBulkUpdateJSONBody defines parameters for ExtrasConfigContextsBulkUpdate.
type ExtrasConfigContextsBulkUpdateJSONBody = []BulkWritableConfigContextRequest

// ExtrasConfigContextsNotesListParams defines parameters for ExtrasConfigContextsNotesList.
type ExtrasConfigContextsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasContentTypesListParams defines parameters for ExtrasContentTypesList.
type ExtrasContentTypesListParams struct {
	AppLabel     *[]string `form:"app_label,omitempty" json:"app_label,omitempty"`
	AppLabelIc   *[]string `form:"app_label__ic,omitempty" json:"app_label__ic,omitempty"`
	AppLabelIe   *[]string `form:"app_label__ie,omitempty" json:"app_label__ie,omitempty"`
	AppLabelIew  *[]string `form:"app_label__iew,omitempty" json:"app_label__iew,omitempty"`
	AppLabelIre  *[]string `form:"app_label__ire,omitempty" json:"app_label__ire,omitempty"`
	AppLabelIsw  *[]string `form:"app_label__isw,omitempty" json:"app_label__isw,omitempty"`
	AppLabelN    *[]string `form:"app_label__n,omitempty" json:"app_label__n,omitempty"`
	AppLabelNic  *[]string `form:"app_label__nic,omitempty" json:"app_label__nic,omitempty"`
	AppLabelNie  *[]string `form:"app_label__nie,omitempty" json:"app_label__nie,omitempty"`
	AppLabelNiew *[]string `form:"app_label__niew,omitempty" json:"app_label__niew,omitempty"`
	AppLabelNire *[]string `form:"app_label__nire,omitempty" json:"app_label__nire,omitempty"`
	AppLabelNisw *[]string `form:"app_label__nisw,omitempty" json:"app_label__nisw,omitempty"`
	AppLabelNre  *[]string `form:"app_label__nre,omitempty" json:"app_label__nre,omitempty"`
	AppLabelRe   *[]string `form:"app_label__re,omitempty" json:"app_label__re,omitempty"`
	Id           *[]int    `form:"id,omitempty" json:"id,omitempty"`
	IdGt         *[]int    `form:"id__gt,omitempty" json:"id__gt,omitempty"`
	IdGte        *[]int    `form:"id__gte,omitempty" json:"id__gte,omitempty"`
	IdLt         *[]int    `form:"id__lt,omitempty" json:"id__lt,omitempty"`
	IdLte        *[]int    `form:"id__lte,omitempty" json:"id__lte,omitempty"`
	IdN          *[]int    `form:"id__n,omitempty" json:"id__n,omitempty"`

	// Limit Number of results to return per page.
	Limit     *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Model     *[]string `form:"model,omitempty" json:"model,omitempty"`
	ModelIc   *[]string `form:"model__ic,omitempty" json:"model__ic,omitempty"`
	ModelIe   *[]string `form:"model__ie,omitempty" json:"model__ie,omitempty"`
	ModelIew  *[]string `form:"model__iew,omitempty" json:"model__iew,omitempty"`
	ModelIre  *[]string `form:"model__ire,omitempty" json:"model__ire,omitempty"`
	ModelIsw  *[]string `form:"model__isw,omitempty" json:"model__isw,omitempty"`
	ModelN    *[]string `form:"model__n,omitempty" json:"model__n,omitempty"`
	ModelNic  *[]string `form:"model__nic,omitempty" json:"model__nic,omitempty"`
	ModelNie  *[]string `form:"model__nie,omitempty" json:"model__nie,omitempty"`
	ModelNiew *[]string `form:"model__niew,omitempty" json:"model__niew,omitempty"`
	ModelNire *[]string `form:"model__nire,omitempty" json:"model__nire,omitempty"`
	ModelNisw *[]string `form:"model__nisw,omitempty" json:"model__nisw,omitempty"`
	ModelNre  *[]string `form:"model__nre,omitempty" json:"model__nre,omitempty"`
	ModelRe   *[]string `form:"model__re,omitempty" json:"model__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// ExtrasCustomFieldChoicesBulkDestroyJSONBody defines parameters for ExtrasCustomFieldChoicesBulkDestroy.
type ExtrasCustomFieldChoicesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasCustomFieldChoicesListParams defines parameters for ExtrasCustomFieldChoicesList.
type ExtrasCustomFieldChoicesListParams struct {
	// Field Field (name)
	Field *[]string `form:"field,omitempty" json:"field,omitempty"`

	// FieldN Field (name)
	FieldN *[]string `form:"field__n,omitempty" json:"field__n,omitempty"`

	// FieldId Field
	FieldId *[]openapi_types.UUID `form:"field_id,omitempty" json:"field_id,omitempty"`

	// FieldIdN Field
	FieldIdN *[]openapi_types.UUID `form:"field_id__n,omitempty" json:"field_id__n,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q         *string   `form:"q,omitempty" json:"q,omitempty"`
	Value     *[]string `form:"value,omitempty" json:"value,omitempty"`
	ValueIc   *[]string `form:"value__ic,omitempty" json:"value__ic,omitempty"`
	ValueIe   *[]string `form:"value__ie,omitempty" json:"value__ie,omitempty"`
	ValueIew  *[]string `form:"value__iew,omitempty" json:"value__iew,omitempty"`
	ValueIre  *[]string `form:"value__ire,omitempty" json:"value__ire,omitempty"`
	ValueIsw  *[]string `form:"value__isw,omitempty" json:"value__isw,omitempty"`
	ValueN    *[]string `form:"value__n,omitempty" json:"value__n,omitempty"`
	ValueNic  *[]string `form:"value__nic,omitempty" json:"value__nic,omitempty"`
	ValueNie  *[]string `form:"value__nie,omitempty" json:"value__nie,omitempty"`
	ValueNiew *[]string `form:"value__niew,omitempty" json:"value__niew,omitempty"`
	ValueNire *[]string `form:"value__nire,omitempty" json:"value__nire,omitempty"`
	ValueNisw *[]string `form:"value__nisw,omitempty" json:"value__nisw,omitempty"`
	ValueNre  *[]string `form:"value__nre,omitempty" json:"value__nre,omitempty"`
	ValueRe   *[]string `form:"value__re,omitempty" json:"value__re,omitempty"`
	Weight    *[]int    `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt  *[]int    `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte *[]int    `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt  *[]int    `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte *[]int    `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN   *[]int    `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// ExtrasCustomFieldChoicesBulkPartialUpdateJSONBody defines parameters for ExtrasCustomFieldChoicesBulkPartialUpdate.
type ExtrasCustomFieldChoicesBulkPartialUpdateJSONBody = []PatchedBulkWritableCustomFieldChoiceRequest

// ExtrasCustomFieldChoicesBulkUpdateJSONBody defines parameters for ExtrasCustomFieldChoicesBulkUpdate.
type ExtrasCustomFieldChoicesBulkUpdateJSONBody = []BulkWritableCustomFieldChoiceRequest

// ExtrasCustomFieldsBulkDestroyJSONBody defines parameters for ExtrasCustomFieldsBulkDestroy.
type ExtrasCustomFieldsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasCustomFieldsListParams defines parameters for ExtrasCustomFieldsList.
type ExtrasCustomFieldsListParams struct {
	ContentTypes  *[]int `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN *[]int `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`

	// FilterLogic Loose matches any instance of a given string; Exact matches the entire field.
	FilterLogic *string `form:"filter_logic,omitempty" json:"filter_logic,omitempty"`

	// FilterLogicN Loose matches any instance of a given string; Exact matches the entire field.
	FilterLogicN *string               `form:"filter_logic__n,omitempty" json:"filter_logic__n,omitempty"`
	Id           *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc         *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe         *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew        *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre        *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw        *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN          *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic        *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie        *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew       *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire       *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw       *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre        *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe         *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q         *string `form:"q,omitempty" json:"q,omitempty"`
	Required  *bool   `form:"required,omitempty" json:"required,omitempty"`
	Weight    *[]int  `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt  *[]int  `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte *[]int  `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt  *[]int  `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte *[]int  `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN   *[]int  `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// ExtrasCustomFieldsBulkPartialUpdateJSONBody defines parameters for ExtrasCustomFieldsBulkPartialUpdate.
type ExtrasCustomFieldsBulkPartialUpdateJSONBody = []CustomFieldSerializerVersion12Request

// ExtrasCustomFieldsBulkUpdateJSONBody defines parameters for ExtrasCustomFieldsBulkUpdate.
type ExtrasCustomFieldsBulkUpdateJSONBody = []CustomFieldSerializerVersion12Request

// ExtrasCustomFieldsNotesListParams defines parameters for ExtrasCustomFieldsNotesList.
type ExtrasCustomFieldsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasCustomLinksBulkDestroyJSONBody defines parameters for ExtrasCustomLinksBulkDestroy.
type ExtrasCustomLinksBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasCustomLinksListParams defines parameters for ExtrasCustomLinksList.
type ExtrasCustomLinksListParams struct {
	// ButtonClass The class of the first link in a group will be used for the dropdown button
	ButtonClass *string `form:"button_class,omitempty" json:"button_class,omitempty"`

	// ButtonClassN The class of the first link in a group will be used for the dropdown button
	ButtonClassN  *string               `form:"button_class__n,omitempty" json:"button_class__n,omitempty"`
	ContentType   *string               `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN  *string               `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	GroupName     *[]string             `form:"group_name,omitempty" json:"group_name,omitempty"`
	GroupNameIc   *[]string             `form:"group_name__ic,omitempty" json:"group_name__ic,omitempty"`
	GroupNameIe   *[]string             `form:"group_name__ie,omitempty" json:"group_name__ie,omitempty"`
	GroupNameIew  *[]string             `form:"group_name__iew,omitempty" json:"group_name__iew,omitempty"`
	GroupNameIre  *[]string             `form:"group_name__ire,omitempty" json:"group_name__ire,omitempty"`
	GroupNameIsw  *[]string             `form:"group_name__isw,omitempty" json:"group_name__isw,omitempty"`
	GroupNameN    *[]string             `form:"group_name__n,omitempty" json:"group_name__n,omitempty"`
	GroupNameNic  *[]string             `form:"group_name__nic,omitempty" json:"group_name__nic,omitempty"`
	GroupNameNie  *[]string             `form:"group_name__nie,omitempty" json:"group_name__nie,omitempty"`
	GroupNameNiew *[]string             `form:"group_name__niew,omitempty" json:"group_name__niew,omitempty"`
	GroupNameNire *[]string             `form:"group_name__nire,omitempty" json:"group_name__nire,omitempty"`
	GroupNameNisw *[]string             `form:"group_name__nisw,omitempty" json:"group_name__nisw,omitempty"`
	GroupNameNre  *[]string             `form:"group_name__nre,omitempty" json:"group_name__nre,omitempty"`
	GroupNameRe   *[]string             `form:"group_name__re,omitempty" json:"group_name__re,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit     *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name      *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`
	NewWindow *bool     `form:"new_window,omitempty" json:"new_window,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q             *string   `form:"q,omitempty" json:"q,omitempty"`
	TargetUrl     *[]string `form:"target_url,omitempty" json:"target_url,omitempty"`
	TargetUrlIc   *[]string `form:"target_url__ic,omitempty" json:"target_url__ic,omitempty"`
	TargetUrlIe   *[]string `form:"target_url__ie,omitempty" json:"target_url__ie,omitempty"`
	TargetUrlIew  *[]string `form:"target_url__iew,omitempty" json:"target_url__iew,omitempty"`
	TargetUrlIre  *[]string `form:"target_url__ire,omitempty" json:"target_url__ire,omitempty"`
	TargetUrlIsw  *[]string `form:"target_url__isw,omitempty" json:"target_url__isw,omitempty"`
	TargetUrlN    *[]string `form:"target_url__n,omitempty" json:"target_url__n,omitempty"`
	TargetUrlNic  *[]string `form:"target_url__nic,omitempty" json:"target_url__nic,omitempty"`
	TargetUrlNie  *[]string `form:"target_url__nie,omitempty" json:"target_url__nie,omitempty"`
	TargetUrlNiew *[]string `form:"target_url__niew,omitempty" json:"target_url__niew,omitempty"`
	TargetUrlNire *[]string `form:"target_url__nire,omitempty" json:"target_url__nire,omitempty"`
	TargetUrlNisw *[]string `form:"target_url__nisw,omitempty" json:"target_url__nisw,omitempty"`
	TargetUrlNre  *[]string `form:"target_url__nre,omitempty" json:"target_url__nre,omitempty"`
	TargetUrlRe   *[]string `form:"target_url__re,omitempty" json:"target_url__re,omitempty"`
	Text          *[]string `form:"text,omitempty" json:"text,omitempty"`
	TextIc        *[]string `form:"text__ic,omitempty" json:"text__ic,omitempty"`
	TextIe        *[]string `form:"text__ie,omitempty" json:"text__ie,omitempty"`
	TextIew       *[]string `form:"text__iew,omitempty" json:"text__iew,omitempty"`
	TextIre       *[]string `form:"text__ire,omitempty" json:"text__ire,omitempty"`
	TextIsw       *[]string `form:"text__isw,omitempty" json:"text__isw,omitempty"`
	TextN         *[]string `form:"text__n,omitempty" json:"text__n,omitempty"`
	TextNic       *[]string `form:"text__nic,omitempty" json:"text__nic,omitempty"`
	TextNie       *[]string `form:"text__nie,omitempty" json:"text__nie,omitempty"`
	TextNiew      *[]string `form:"text__niew,omitempty" json:"text__niew,omitempty"`
	TextNire      *[]string `form:"text__nire,omitempty" json:"text__nire,omitempty"`
	TextNisw      *[]string `form:"text__nisw,omitempty" json:"text__nisw,omitempty"`
	TextNre       *[]string `form:"text__nre,omitempty" json:"text__nre,omitempty"`
	TextRe        *[]string `form:"text__re,omitempty" json:"text__re,omitempty"`
	Weight        *[]int    `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt      *[]int    `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte     *[]int    `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt      *[]int    `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte     *[]int    `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN       *[]int    `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// ExtrasCustomLinksBulkPartialUpdateJSONBody defines parameters for ExtrasCustomLinksBulkPartialUpdate.
type ExtrasCustomLinksBulkPartialUpdateJSONBody = []PatchedBulkWritableCustomLinkRequest

// ExtrasCustomLinksBulkUpdateJSONBody defines parameters for ExtrasCustomLinksBulkUpdate.
type ExtrasCustomLinksBulkUpdateJSONBody = []BulkWritableCustomLinkRequest

// ExtrasCustomLinksNotesListParams defines parameters for ExtrasCustomLinksNotesList.
type ExtrasCustomLinksNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasDynamicGroupMembershipsBulkDestroyJSONBody defines parameters for ExtrasDynamicGroupMembershipsBulkDestroy.
type ExtrasDynamicGroupMembershipsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasDynamicGroupMembershipsListParams defines parameters for ExtrasDynamicGroupMembershipsList.
type ExtrasDynamicGroupMembershipsListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Group Group (slug or ID)
	Group *[]openapi_types.UUID `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Group (slug or ID)
	GroupN         *[]openapi_types.UUID `form:"group__n,omitempty" json:"group__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset    *int                                              `form:"offset,omitempty" json:"offset,omitempty"`
	Operator  *ExtrasDynamicGroupMembershipsListParamsOperator  `form:"operator,omitempty" json:"operator,omitempty"`
	OperatorN *ExtrasDynamicGroupMembershipsListParamsOperatorN `form:"operator__n,omitempty" json:"operator__n,omitempty"`

	// ParentGroup Parent Group (slug or ID)
	ParentGroup *[]openapi_types.UUID `form:"parent_group,omitempty" json:"parent_group,omitempty"`

	// ParentGroupN Parent Group (slug or ID)
	ParentGroupN *[]openapi_types.UUID `form:"parent_group__n,omitempty" json:"parent_group__n,omitempty"`

	// Q Search
	Q         *string `form:"q,omitempty" json:"q,omitempty"`
	Weight    *[]int  `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt  *[]int  `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte *[]int  `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt  *[]int  `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte *[]int  `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN   *[]int  `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// ExtrasDynamicGroupMembershipsListParamsOperator defines parameters for ExtrasDynamicGroupMembershipsList.
type ExtrasDynamicGroupMembershipsListParamsOperator string

// ExtrasDynamicGroupMembershipsListParamsOperatorN defines parameters for ExtrasDynamicGroupMembershipsList.
type ExtrasDynamicGroupMembershipsListParamsOperatorN string

// ExtrasDynamicGroupMembershipsBulkPartialUpdateJSONBody defines parameters for ExtrasDynamicGroupMembershipsBulkPartialUpdate.
type ExtrasDynamicGroupMembershipsBulkPartialUpdateJSONBody = []PatchedBulkWritableDynamicGroupMembershipRequest

// ExtrasDynamicGroupMembershipsBulkUpdateJSONBody defines parameters for ExtrasDynamicGroupMembershipsBulkUpdate.
type ExtrasDynamicGroupMembershipsBulkUpdateJSONBody = []BulkWritableDynamicGroupMembershipRequest

// ExtrasDynamicGroupsBulkDestroyJSONBody defines parameters for ExtrasDynamicGroupsBulkDestroy.
type ExtrasDynamicGroupsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasDynamicGroupsListParams defines parameters for ExtrasDynamicGroupsList.
type ExtrasDynamicGroupsListParams struct {
	ContentType     *[]int                `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN    *[]int                `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasDynamicGroupsBulkPartialUpdateJSONBody defines parameters for ExtrasDynamicGroupsBulkPartialUpdate.
type ExtrasDynamicGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableDynamicGroupRequest

// ExtrasDynamicGroupsBulkUpdateJSONBody defines parameters for ExtrasDynamicGroupsBulkUpdate.
type ExtrasDynamicGroupsBulkUpdateJSONBody = []BulkWritableDynamicGroupRequest

// ExtrasDynamicGroupsNotesListParams defines parameters for ExtrasDynamicGroupsNotesList.
type ExtrasDynamicGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasExportTemplatesBulkDestroyJSONBody defines parameters for ExtrasExportTemplatesBulkDestroy.
type ExtrasExportTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasExportTemplatesListParams defines parameters for ExtrasExportTemplatesList.
type ExtrasExportTemplatesListParams struct {
	ContentType  *int                  `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN *int                  `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	Id           *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc         *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe         *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew        *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre        *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw        *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN          *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic        *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie        *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew       *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire       *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw       *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre        *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe         *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset            *int                  `form:"offset,omitempty" json:"offset,omitempty"`
	OwnerContentType  *string               `form:"owner_content_type,omitempty" json:"owner_content_type,omitempty"`
	OwnerContentTypeN *string               `form:"owner_content_type__n,omitempty" json:"owner_content_type__n,omitempty"`
	OwnerObjectId     *[]openapi_types.UUID `form:"owner_object_id,omitempty" json:"owner_object_id,omitempty"`
	OwnerObjectIdIc   *[]openapi_types.UUID `form:"owner_object_id__ic,omitempty" json:"owner_object_id__ic,omitempty"`
	OwnerObjectIdIe   *[]openapi_types.UUID `form:"owner_object_id__ie,omitempty" json:"owner_object_id__ie,omitempty"`
	OwnerObjectIdIew  *[]openapi_types.UUID `form:"owner_object_id__iew,omitempty" json:"owner_object_id__iew,omitempty"`
	OwnerObjectIdIre  *[]openapi_types.UUID `form:"owner_object_id__ire,omitempty" json:"owner_object_id__ire,omitempty"`
	OwnerObjectIdIsw  *[]openapi_types.UUID `form:"owner_object_id__isw,omitempty" json:"owner_object_id__isw,omitempty"`
	OwnerObjectIdN    *[]openapi_types.UUID `form:"owner_object_id__n,omitempty" json:"owner_object_id__n,omitempty"`
	OwnerObjectIdNic  *[]openapi_types.UUID `form:"owner_object_id__nic,omitempty" json:"owner_object_id__nic,omitempty"`
	OwnerObjectIdNie  *[]openapi_types.UUID `form:"owner_object_id__nie,omitempty" json:"owner_object_id__nie,omitempty"`
	OwnerObjectIdNiew *[]openapi_types.UUID `form:"owner_object_id__niew,omitempty" json:"owner_object_id__niew,omitempty"`
	OwnerObjectIdNire *[]openapi_types.UUID `form:"owner_object_id__nire,omitempty" json:"owner_object_id__nire,omitempty"`
	OwnerObjectIdNisw *[]openapi_types.UUID `form:"owner_object_id__nisw,omitempty" json:"owner_object_id__nisw,omitempty"`
	OwnerObjectIdNre  *[]openapi_types.UUID `form:"owner_object_id__nre,omitempty" json:"owner_object_id__nre,omitempty"`
	OwnerObjectIdRe   *[]openapi_types.UUID `form:"owner_object_id__re,omitempty" json:"owner_object_id__re,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// ExtrasExportTemplatesBulkPartialUpdateJSONBody defines parameters for ExtrasExportTemplatesBulkPartialUpdate.
type ExtrasExportTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritableExportTemplateRequest

// ExtrasExportTemplatesBulkUpdateJSONBody defines parameters for ExtrasExportTemplatesBulkUpdate.
type ExtrasExportTemplatesBulkUpdateJSONBody = []BulkWritableExportTemplateRequest

// ExtrasExportTemplatesNotesListParams defines parameters for ExtrasExportTemplatesNotesList.
type ExtrasExportTemplatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasGitRepositoriesBulkDestroyJSONBody defines parameters for ExtrasGitRepositoriesBulkDestroy.
type ExtrasGitRepositoriesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasGitRepositoriesListParams defines parameters for ExtrasGitRepositoriesList.
type ExtrasGitRepositoriesListParams struct {
	Branch         *[]string             `form:"branch,omitempty" json:"branch,omitempty"`
	BranchIc       *[]string             `form:"branch__ic,omitempty" json:"branch__ic,omitempty"`
	BranchIe       *[]string             `form:"branch__ie,omitempty" json:"branch__ie,omitempty"`
	BranchIew      *[]string             `form:"branch__iew,omitempty" json:"branch__iew,omitempty"`
	BranchIre      *[]string             `form:"branch__ire,omitempty" json:"branch__ire,omitempty"`
	BranchIsw      *[]string             `form:"branch__isw,omitempty" json:"branch__isw,omitempty"`
	BranchN        *[]string             `form:"branch__n,omitempty" json:"branch__n,omitempty"`
	BranchNic      *[]string             `form:"branch__nic,omitempty" json:"branch__nic,omitempty"`
	BranchNie      *[]string             `form:"branch__nie,omitempty" json:"branch__nie,omitempty"`
	BranchNiew     *[]string             `form:"branch__niew,omitempty" json:"branch__niew,omitempty"`
	BranchNire     *[]string             `form:"branch__nire,omitempty" json:"branch__nire,omitempty"`
	BranchNisw     *[]string             `form:"branch__nisw,omitempty" json:"branch__nisw,omitempty"`
	BranchNre      *[]string             `form:"branch__nre,omitempty" json:"branch__nre,omitempty"`
	BranchRe       *[]string             `form:"branch__re,omitempty" json:"branch__re,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset           *int      `form:"offset,omitempty" json:"offset,omitempty"`
	ProvidedContents *[]string `form:"provided_contents,omitempty" json:"provided_contents,omitempty"`

	// Q Search
	Q             *string   `form:"q,omitempty" json:"q,omitempty"`
	RemoteUrl     *[]string `form:"remote_url,omitempty" json:"remote_url,omitempty"`
	RemoteUrlIc   *[]string `form:"remote_url__ic,omitempty" json:"remote_url__ic,omitempty"`
	RemoteUrlIe   *[]string `form:"remote_url__ie,omitempty" json:"remote_url__ie,omitempty"`
	RemoteUrlIew  *[]string `form:"remote_url__iew,omitempty" json:"remote_url__iew,omitempty"`
	RemoteUrlIre  *[]string `form:"remote_url__ire,omitempty" json:"remote_url__ire,omitempty"`
	RemoteUrlIsw  *[]string `form:"remote_url__isw,omitempty" json:"remote_url__isw,omitempty"`
	RemoteUrlN    *[]string `form:"remote_url__n,omitempty" json:"remote_url__n,omitempty"`
	RemoteUrlNic  *[]string `form:"remote_url__nic,omitempty" json:"remote_url__nic,omitempty"`
	RemoteUrlNie  *[]string `form:"remote_url__nie,omitempty" json:"remote_url__nie,omitempty"`
	RemoteUrlNiew *[]string `form:"remote_url__niew,omitempty" json:"remote_url__niew,omitempty"`
	RemoteUrlNire *[]string `form:"remote_url__nire,omitempty" json:"remote_url__nire,omitempty"`
	RemoteUrlNisw *[]string `form:"remote_url__nisw,omitempty" json:"remote_url__nisw,omitempty"`
	RemoteUrlNre  *[]string `form:"remote_url__nre,omitempty" json:"remote_url__nre,omitempty"`
	RemoteUrlRe   *[]string `form:"remote_url__re,omitempty" json:"remote_url__re,omitempty"`

	// SecretsGroup Secrets group (slug)
	SecretsGroup *[]string `form:"secrets_group,omitempty" json:"secrets_group,omitempty"`

	// SecretsGroupN Secrets group (slug)
	SecretsGroupN *[]string `form:"secrets_group__n,omitempty" json:"secrets_group__n,omitempty"`

	// SecretsGroupId Secrets group (ID)
	SecretsGroupId *[]openapi_types.UUID `form:"secrets_group_id,omitempty" json:"secrets_group_id,omitempty"`

	// SecretsGroupIdN Secrets group (ID)
	SecretsGroupIdN *[]openapi_types.UUID `form:"secrets_group_id__n,omitempty" json:"secrets_group_id__n,omitempty"`
	Slug            *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc          *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe          *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew         *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre         *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw         *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN           *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic         *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie         *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew        *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire        *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw        *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre         *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe          *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Tag             *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN            *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// ExtrasGitRepositoriesBulkPartialUpdateJSONBody defines parameters for ExtrasGitRepositoriesBulkPartialUpdate.
type ExtrasGitRepositoriesBulkPartialUpdateJSONBody = []PatchedBulkWritableGitRepositoryRequest

// ExtrasGitRepositoriesBulkUpdateJSONBody defines parameters for ExtrasGitRepositoriesBulkUpdate.
type ExtrasGitRepositoriesBulkUpdateJSONBody = []BulkWritableGitRepositoryRequest

// ExtrasGitRepositoriesNotesListParams defines parameters for ExtrasGitRepositoriesNotesList.
type ExtrasGitRepositoriesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasGraphqlQueriesBulkDestroyJSONBody defines parameters for ExtrasGraphqlQueriesBulkDestroy.
type ExtrasGraphqlQueriesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasGraphqlQueriesListParams defines parameters for ExtrasGraphqlQueriesList.
type ExtrasGraphqlQueriesListParams struct {
	Id     *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc   *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe   *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew  *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre  *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw  *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN    *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic  *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie  *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre  *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe   *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasGraphqlQueriesBulkPartialUpdateJSONBody defines parameters for ExtrasGraphqlQueriesBulkPartialUpdate.
type ExtrasGraphqlQueriesBulkPartialUpdateJSONBody = []PatchedBulkWritableGraphQLQueryRequest

// ExtrasGraphqlQueriesBulkUpdateJSONBody defines parameters for ExtrasGraphqlQueriesBulkUpdate.
type ExtrasGraphqlQueriesBulkUpdateJSONBody = []BulkWritableGraphQLQueryRequest

// ExtrasGraphqlQueriesNotesListParams defines parameters for ExtrasGraphqlQueriesNotesList.
type ExtrasGraphqlQueriesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasImageAttachmentsBulkDestroyJSONBody defines parameters for ExtrasImageAttachmentsBulkDestroy.
type ExtrasImageAttachmentsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasImageAttachmentsListParams defines parameters for ExtrasImageAttachmentsList.
type ExtrasImageAttachmentsListParams struct {
	ContentType    *string               `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN   *string               `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	ContentTypeId  *int                  `form:"content_type_id,omitempty" json:"content_type_id,omitempty"`
	ContentTypeIdN *int                  `form:"content_type_id__n,omitempty" json:"content_type_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit        *int                  `form:"limit,omitempty" json:"limit,omitempty"`
	Name         *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc       *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe       *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew      *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre      *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw      *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN        *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic      *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie      *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew     *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire     *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw     *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre      *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe       *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`
	ObjectId     *[]openapi_types.UUID `form:"object_id,omitempty" json:"object_id,omitempty"`
	ObjectIdIc   *[]openapi_types.UUID `form:"object_id__ic,omitempty" json:"object_id__ic,omitempty"`
	ObjectIdIe   *[]openapi_types.UUID `form:"object_id__ie,omitempty" json:"object_id__ie,omitempty"`
	ObjectIdIew  *[]openapi_types.UUID `form:"object_id__iew,omitempty" json:"object_id__iew,omitempty"`
	ObjectIdIre  *[]openapi_types.UUID `form:"object_id__ire,omitempty" json:"object_id__ire,omitempty"`
	ObjectIdIsw  *[]openapi_types.UUID `form:"object_id__isw,omitempty" json:"object_id__isw,omitempty"`
	ObjectIdN    *[]openapi_types.UUID `form:"object_id__n,omitempty" json:"object_id__n,omitempty"`
	ObjectIdNic  *[]openapi_types.UUID `form:"object_id__nic,omitempty" json:"object_id__nic,omitempty"`
	ObjectIdNie  *[]openapi_types.UUID `form:"object_id__nie,omitempty" json:"object_id__nie,omitempty"`
	ObjectIdNiew *[]openapi_types.UUID `form:"object_id__niew,omitempty" json:"object_id__niew,omitempty"`
	ObjectIdNire *[]openapi_types.UUID `form:"object_id__nire,omitempty" json:"object_id__nire,omitempty"`
	ObjectIdNisw *[]openapi_types.UUID `form:"object_id__nisw,omitempty" json:"object_id__nisw,omitempty"`
	ObjectIdNre  *[]openapi_types.UUID `form:"object_id__nre,omitempty" json:"object_id__nre,omitempty"`
	ObjectIdRe   *[]openapi_types.UUID `form:"object_id__re,omitempty" json:"object_id__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasImageAttachmentsBulkPartialUpdateJSONBody defines parameters for ExtrasImageAttachmentsBulkPartialUpdate.
type ExtrasImageAttachmentsBulkPartialUpdateJSONBody = []PatchedBulkWritableImageAttachmentRequest

// ExtrasImageAttachmentsBulkUpdateJSONBody defines parameters for ExtrasImageAttachmentsBulkUpdate.
type ExtrasImageAttachmentsBulkUpdateJSONBody = []BulkWritableImageAttachmentRequest

// ExtrasJobHooksBulkDestroyJSONBody defines parameters for ExtrasJobHooksBulkDestroy.
type ExtrasJobHooksBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasJobHooksListParams defines parameters for ExtrasJobHooksList.
type ExtrasJobHooksListParams struct {
	ContentTypes  *[]int                `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN *[]int                `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`
	Enabled       *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Job Job (slug or ID)
	Job *[]openapi_types.UUID `form:"job,omitempty" json:"job,omitempty"`

	// JobN Job (slug or ID)
	JobN *[]openapi_types.UUID `form:"job__n,omitempty" json:"job__n,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q          *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug       *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc     *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe     *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew    *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre    *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw    *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN      *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic    *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie    *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew   *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire   *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw   *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre    *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe     *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	TypeCreate *bool     `form:"type_create,omitempty" json:"type_create,omitempty"`
	TypeDelete *bool     `form:"type_delete,omitempty" json:"type_delete,omitempty"`
	TypeUpdate *bool     `form:"type_update,omitempty" json:"type_update,omitempty"`
}

// ExtrasJobHooksBulkPartialUpdateJSONBody defines parameters for ExtrasJobHooksBulkPartialUpdate.
type ExtrasJobHooksBulkPartialUpdateJSONBody = []PatchedBulkWritableJobHookRequest

// ExtrasJobHooksBulkUpdateJSONBody defines parameters for ExtrasJobHooksBulkUpdate.
type ExtrasJobHooksBulkUpdateJSONBody = []BulkWritableJobHookRequest

// ExtrasJobHooksNotesListParams defines parameters for ExtrasJobHooksNotesList.
type ExtrasJobHooksNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasJobLogsListParams defines parameters for ExtrasJobLogsList.
type ExtrasJobLogsListParams struct {
	AbsoluteUrl     *[]string             `form:"absolute_url,omitempty" json:"absolute_url,omitempty"`
	AbsoluteUrlIc   *[]string             `form:"absolute_url__ic,omitempty" json:"absolute_url__ic,omitempty"`
	AbsoluteUrlIe   *[]string             `form:"absolute_url__ie,omitempty" json:"absolute_url__ie,omitempty"`
	AbsoluteUrlIew  *[]string             `form:"absolute_url__iew,omitempty" json:"absolute_url__iew,omitempty"`
	AbsoluteUrlIre  *[]string             `form:"absolute_url__ire,omitempty" json:"absolute_url__ire,omitempty"`
	AbsoluteUrlIsw  *[]string             `form:"absolute_url__isw,omitempty" json:"absolute_url__isw,omitempty"`
	AbsoluteUrlN    *[]string             `form:"absolute_url__n,omitempty" json:"absolute_url__n,omitempty"`
	AbsoluteUrlNic  *[]string             `form:"absolute_url__nic,omitempty" json:"absolute_url__nic,omitempty"`
	AbsoluteUrlNie  *[]string             `form:"absolute_url__nie,omitempty" json:"absolute_url__nie,omitempty"`
	AbsoluteUrlNiew *[]string             `form:"absolute_url__niew,omitempty" json:"absolute_url__niew,omitempty"`
	AbsoluteUrlNire *[]string             `form:"absolute_url__nire,omitempty" json:"absolute_url__nire,omitempty"`
	AbsoluteUrlNisw *[]string             `form:"absolute_url__nisw,omitempty" json:"absolute_url__nisw,omitempty"`
	AbsoluteUrlNre  *[]string             `form:"absolute_url__nre,omitempty" json:"absolute_url__nre,omitempty"`
	AbsoluteUrlRe   *[]string             `form:"absolute_url__re,omitempty" json:"absolute_url__re,omitempty"`
	Created         *[]time.Time          `form:"created,omitempty" json:"created,omitempty"`
	CreatedGt       *[]time.Time          `form:"created__gt,omitempty" json:"created__gt,omitempty"`
	CreatedGte      *[]time.Time          `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLt       *[]time.Time          `form:"created__lt,omitempty" json:"created__lt,omitempty"`
	CreatedLte      *[]time.Time          `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	CreatedN        *[]time.Time          `form:"created__n,omitempty" json:"created__n,omitempty"`
	Grouping        *[]string             `form:"grouping,omitempty" json:"grouping,omitempty"`
	GroupingIc      *[]string             `form:"grouping__ic,omitempty" json:"grouping__ic,omitempty"`
	GroupingIe      *[]string             `form:"grouping__ie,omitempty" json:"grouping__ie,omitempty"`
	GroupingIew     *[]string             `form:"grouping__iew,omitempty" json:"grouping__iew,omitempty"`
	GroupingIre     *[]string             `form:"grouping__ire,omitempty" json:"grouping__ire,omitempty"`
	GroupingIsw     *[]string             `form:"grouping__isw,omitempty" json:"grouping__isw,omitempty"`
	GroupingN       *[]string             `form:"grouping__n,omitempty" json:"grouping__n,omitempty"`
	GroupingNic     *[]string             `form:"grouping__nic,omitempty" json:"grouping__nic,omitempty"`
	GroupingNie     *[]string             `form:"grouping__nie,omitempty" json:"grouping__nie,omitempty"`
	GroupingNiew    *[]string             `form:"grouping__niew,omitempty" json:"grouping__niew,omitempty"`
	GroupingNire    *[]string             `form:"grouping__nire,omitempty" json:"grouping__nire,omitempty"`
	GroupingNisw    *[]string             `form:"grouping__nisw,omitempty" json:"grouping__nisw,omitempty"`
	GroupingNre     *[]string             `form:"grouping__nre,omitempty" json:"grouping__nre,omitempty"`
	GroupingRe      *[]string             `form:"grouping__re,omitempty" json:"grouping__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	JobResult       *openapi_types.UUID   `form:"job_result,omitempty" json:"job_result,omitempty"`
	JobResultN      *openapi_types.UUID   `form:"job_result__n,omitempty" json:"job_result__n,omitempty"`

	// Limit Number of results to return per page.
	Limit         *int      `form:"limit,omitempty" json:"limit,omitempty"`
	LogLevel      *string   `form:"log_level,omitempty" json:"log_level,omitempty"`
	LogLevelN     *string   `form:"log_level__n,omitempty" json:"log_level__n,omitempty"`
	LogObject     *[]string `form:"log_object,omitempty" json:"log_object,omitempty"`
	LogObjectIc   *[]string `form:"log_object__ic,omitempty" json:"log_object__ic,omitempty"`
	LogObjectIe   *[]string `form:"log_object__ie,omitempty" json:"log_object__ie,omitempty"`
	LogObjectIew  *[]string `form:"log_object__iew,omitempty" json:"log_object__iew,omitempty"`
	LogObjectIre  *[]string `form:"log_object__ire,omitempty" json:"log_object__ire,omitempty"`
	LogObjectIsw  *[]string `form:"log_object__isw,omitempty" json:"log_object__isw,omitempty"`
	LogObjectN    *[]string `form:"log_object__n,omitempty" json:"log_object__n,omitempty"`
	LogObjectNic  *[]string `form:"log_object__nic,omitempty" json:"log_object__nic,omitempty"`
	LogObjectNie  *[]string `form:"log_object__nie,omitempty" json:"log_object__nie,omitempty"`
	LogObjectNiew *[]string `form:"log_object__niew,omitempty" json:"log_object__niew,omitempty"`
	LogObjectNire *[]string `form:"log_object__nire,omitempty" json:"log_object__nire,omitempty"`
	LogObjectNisw *[]string `form:"log_object__nisw,omitempty" json:"log_object__nisw,omitempty"`
	LogObjectNre  *[]string `form:"log_object__nre,omitempty" json:"log_object__nre,omitempty"`
	LogObjectRe   *[]string `form:"log_object__re,omitempty" json:"log_object__re,omitempty"`
	Message       *[]string `form:"message,omitempty" json:"message,omitempty"`
	MessageIc     *[]string `form:"message__ic,omitempty" json:"message__ic,omitempty"`
	MessageIe     *[]string `form:"message__ie,omitempty" json:"message__ie,omitempty"`
	MessageIew    *[]string `form:"message__iew,omitempty" json:"message__iew,omitempty"`
	MessageIre    *[]string `form:"message__ire,omitempty" json:"message__ire,omitempty"`
	MessageIsw    *[]string `form:"message__isw,omitempty" json:"message__isw,omitempty"`
	MessageN      *[]string `form:"message__n,omitempty" json:"message__n,omitempty"`
	MessageNic    *[]string `form:"message__nic,omitempty" json:"message__nic,omitempty"`
	MessageNie    *[]string `form:"message__nie,omitempty" json:"message__nie,omitempty"`
	MessageNiew   *[]string `form:"message__niew,omitempty" json:"message__niew,omitempty"`
	MessageNire   *[]string `form:"message__nire,omitempty" json:"message__nire,omitempty"`
	MessageNisw   *[]string `form:"message__nisw,omitempty" json:"message__nisw,omitempty"`
	MessageNre    *[]string `form:"message__nre,omitempty" json:"message__nre,omitempty"`
	MessageRe     *[]string `form:"message__re,omitempty" json:"message__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// ExtrasJobResultsBulkDestroyJSONBody defines parameters for ExtrasJobResultsBulkDestroy.
type ExtrasJobResultsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasJobResultsListParams defines parameters for ExtrasJobResultsList.
type ExtrasJobResultsListParams struct {
	Completed *time.Time            `form:"completed,omitempty" json:"completed,omitempty"`
	Created   *time.Time            `form:"created,omitempty" json:"created,omitempty"`
	Id        *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc      *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe      *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew     *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre     *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw     *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN       *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic     *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie     *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew    *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire    *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw    *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre     *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe      *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// JobModel Job (slug)
	JobModel *[]string `form:"job_model,omitempty" json:"job_model,omitempty"`

	// JobModelN Job (slug)
	JobModelN *[]string `form:"job_model__n,omitempty" json:"job_model__n,omitempty"`

	// JobModelId Job (ID)
	JobModelId *[]openapi_types.UUID `form:"job_model_id,omitempty" json:"job_model_id,omitempty"`

	// JobModelIdN Job (ID)
	JobModelIdN *[]openapi_types.UUID `form:"job_model_id__n,omitempty" json:"job_model_id__n,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`
	ObjType  *string   `form:"obj_type,omitempty" json:"obj_type,omitempty"`
	ObjTypeN *string   `form:"obj_type__n,omitempty" json:"obj_type__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string             `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string           `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string           `form:"status__n,omitempty" json:"status__n,omitempty"`
	User    *openapi_types.UUID `form:"user,omitempty" json:"user,omitempty"`
	UserN   *openapi_types.UUID `form:"user__n,omitempty" json:"user__n,omitempty"`
}

// ExtrasJobsBulkDestroyJSONBody defines parameters for ExtrasJobsBulkDestroy.
type ExtrasJobsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasJobsListParams defines parameters for ExtrasJobsList.
type ExtrasJobsListParams struct {
	ApprovalRequired              *bool                 `form:"approval_required,omitempty" json:"approval_required,omitempty"`
	ApprovalRequiredOverride      *bool                 `form:"approval_required_override,omitempty" json:"approval_required_override,omitempty"`
	CommitDefault                 *bool                 `form:"commit_default,omitempty" json:"commit_default,omitempty"`
	CommitDefaultOverride         *bool                 `form:"commit_default_override,omitempty" json:"commit_default_override,omitempty"`
	DescriptionOverride           *bool                 `form:"description_override,omitempty" json:"description_override,omitempty"`
	Enabled                       *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	Grouping                      *[]string             `form:"grouping,omitempty" json:"grouping,omitempty"`
	GroupingIc                    *[]string             `form:"grouping__ic,omitempty" json:"grouping__ic,omitempty"`
	GroupingIe                    *[]string             `form:"grouping__ie,omitempty" json:"grouping__ie,omitempty"`
	GroupingIew                   *[]string             `form:"grouping__iew,omitempty" json:"grouping__iew,omitempty"`
	GroupingIre                   *[]string             `form:"grouping__ire,omitempty" json:"grouping__ire,omitempty"`
	GroupingIsw                   *[]string             `form:"grouping__isw,omitempty" json:"grouping__isw,omitempty"`
	GroupingN                     *[]string             `form:"grouping__n,omitempty" json:"grouping__n,omitempty"`
	GroupingNic                   *[]string             `form:"grouping__nic,omitempty" json:"grouping__nic,omitempty"`
	GroupingNie                   *[]string             `form:"grouping__nie,omitempty" json:"grouping__nie,omitempty"`
	GroupingNiew                  *[]string             `form:"grouping__niew,omitempty" json:"grouping__niew,omitempty"`
	GroupingNire                  *[]string             `form:"grouping__nire,omitempty" json:"grouping__nire,omitempty"`
	GroupingNisw                  *[]string             `form:"grouping__nisw,omitempty" json:"grouping__nisw,omitempty"`
	GroupingNre                   *[]string             `form:"grouping__nre,omitempty" json:"grouping__nre,omitempty"`
	GroupingRe                    *[]string             `form:"grouping__re,omitempty" json:"grouping__re,omitempty"`
	GroupingOverride              *bool                 `form:"grouping_override,omitempty" json:"grouping_override,omitempty"`
	HasSensitiveVariables         *bool                 `form:"has_sensitive_variables,omitempty" json:"has_sensitive_variables,omitempty"`
	HasSensitiveVariablesOverride *bool                 `form:"has_sensitive_variables_override,omitempty" json:"has_sensitive_variables_override,omitempty"`
	Hidden                        *bool                 `form:"hidden,omitempty" json:"hidden,omitempty"`
	HiddenOverride                *bool                 `form:"hidden_override,omitempty" json:"hidden_override,omitempty"`
	Id                            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Installed                     *bool                 `form:"installed,omitempty" json:"installed,omitempty"`
	IsJobHookReceiver             *bool                 `form:"is_job_hook_receiver,omitempty" json:"is_job_hook_receiver,omitempty"`
	JobClassName                  *[]string             `form:"job_class_name,omitempty" json:"job_class_name,omitempty"`
	JobClassNameIc                *[]string             `form:"job_class_name__ic,omitempty" json:"job_class_name__ic,omitempty"`
	JobClassNameIe                *[]string             `form:"job_class_name__ie,omitempty" json:"job_class_name__ie,omitempty"`
	JobClassNameIew               *[]string             `form:"job_class_name__iew,omitempty" json:"job_class_name__iew,omitempty"`
	JobClassNameIre               *[]string             `form:"job_class_name__ire,omitempty" json:"job_class_name__ire,omitempty"`
	JobClassNameIsw               *[]string             `form:"job_class_name__isw,omitempty" json:"job_class_name__isw,omitempty"`
	JobClassNameN                 *[]string             `form:"job_class_name__n,omitempty" json:"job_class_name__n,omitempty"`
	JobClassNameNic               *[]string             `form:"job_class_name__nic,omitempty" json:"job_class_name__nic,omitempty"`
	JobClassNameNie               *[]string             `form:"job_class_name__nie,omitempty" json:"job_class_name__nie,omitempty"`
	JobClassNameNiew              *[]string             `form:"job_class_name__niew,omitempty" json:"job_class_name__niew,omitempty"`
	JobClassNameNire              *[]string             `form:"job_class_name__nire,omitempty" json:"job_class_name__nire,omitempty"`
	JobClassNameNisw              *[]string             `form:"job_class_name__nisw,omitempty" json:"job_class_name__nisw,omitempty"`
	JobClassNameNre               *[]string             `form:"job_class_name__nre,omitempty" json:"job_class_name__nre,omitempty"`
	JobClassNameRe                *[]string             `form:"job_class_name__re,omitempty" json:"job_class_name__re,omitempty"`

	// Limit Number of results to return per page.
	Limit          *int      `form:"limit,omitempty" json:"limit,omitempty"`
	ModuleName     *[]string `form:"module_name,omitempty" json:"module_name,omitempty"`
	ModuleNameIc   *[]string `form:"module_name__ic,omitempty" json:"module_name__ic,omitempty"`
	ModuleNameIe   *[]string `form:"module_name__ie,omitempty" json:"module_name__ie,omitempty"`
	ModuleNameIew  *[]string `form:"module_name__iew,omitempty" json:"module_name__iew,omitempty"`
	ModuleNameIre  *[]string `form:"module_name__ire,omitempty" json:"module_name__ire,omitempty"`
	ModuleNameIsw  *[]string `form:"module_name__isw,omitempty" json:"module_name__isw,omitempty"`
	ModuleNameN    *[]string `form:"module_name__n,omitempty" json:"module_name__n,omitempty"`
	ModuleNameNic  *[]string `form:"module_name__nic,omitempty" json:"module_name__nic,omitempty"`
	ModuleNameNie  *[]string `form:"module_name__nie,omitempty" json:"module_name__nie,omitempty"`
	ModuleNameNiew *[]string `form:"module_name__niew,omitempty" json:"module_name__niew,omitempty"`
	ModuleNameNire *[]string `form:"module_name__nire,omitempty" json:"module_name__nire,omitempty"`
	ModuleNameNisw *[]string `form:"module_name__nisw,omitempty" json:"module_name__nisw,omitempty"`
	ModuleNameNre  *[]string `form:"module_name__nre,omitempty" json:"module_name__nre,omitempty"`
	ModuleNameRe   *[]string `form:"module_name__re,omitempty" json:"module_name__re,omitempty"`
	Name           *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc         *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe         *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew        *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre        *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw        *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN          *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic        *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie        *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew       *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire       *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw       *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre        *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe         *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`
	NameOverride   *bool     `form:"name_override,omitempty" json:"name_override,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                     *string    `form:"q,omitempty" json:"q,omitempty"`
	ReadOnly              *bool      `form:"read_only,omitempty" json:"read_only,omitempty"`
	ReadOnlyOverride      *bool      `form:"read_only_override,omitempty" json:"read_only_override,omitempty"`
	Slug                  *[]string  `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc                *[]string  `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe                *[]string  `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew               *[]string  `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre               *[]string  `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw               *[]string  `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN                 *[]string  `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic               *[]string  `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie               *[]string  `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew              *[]string  `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire              *[]string  `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw              *[]string  `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre               *[]string  `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe                *[]string  `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	SoftTimeLimit         *[]float32 `form:"soft_time_limit,omitempty" json:"soft_time_limit,omitempty"`
	SoftTimeLimitGt       *[]float32 `form:"soft_time_limit__gt,omitempty" json:"soft_time_limit__gt,omitempty"`
	SoftTimeLimitGte      *[]float32 `form:"soft_time_limit__gte,omitempty" json:"soft_time_limit__gte,omitempty"`
	SoftTimeLimitLt       *[]float32 `form:"soft_time_limit__lt,omitempty" json:"soft_time_limit__lt,omitempty"`
	SoftTimeLimitLte      *[]float32 `form:"soft_time_limit__lte,omitempty" json:"soft_time_limit__lte,omitempty"`
	SoftTimeLimitN        *[]float32 `form:"soft_time_limit__n,omitempty" json:"soft_time_limit__n,omitempty"`
	SoftTimeLimitOverride *bool      `form:"soft_time_limit_override,omitempty" json:"soft_time_limit_override,omitempty"`

	// Source Source of the Python code for this job - local, Git repository, or plugins
	Source *string `form:"source,omitempty" json:"source,omitempty"`

	// SourceN Source of the Python code for this job - local, Git repository, or plugins
	SourceN           *string    `form:"source__n,omitempty" json:"source__n,omitempty"`
	Tag               *[]string  `form:"tag,omitempty" json:"tag,omitempty"`
	TagN              *[]string  `form:"tag__n,omitempty" json:"tag__n,omitempty"`
	TimeLimit         *[]float32 `form:"time_limit,omitempty" json:"time_limit,omitempty"`
	TimeLimitGt       *[]float32 `form:"time_limit__gt,omitempty" json:"time_limit__gt,omitempty"`
	TimeLimitGte      *[]float32 `form:"time_limit__gte,omitempty" json:"time_limit__gte,omitempty"`
	TimeLimitLt       *[]float32 `form:"time_limit__lt,omitempty" json:"time_limit__lt,omitempty"`
	TimeLimitLte      *[]float32 `form:"time_limit__lte,omitempty" json:"time_limit__lte,omitempty"`
	TimeLimitN        *[]float32 `form:"time_limit__n,omitempty" json:"time_limit__n,omitempty"`
	TimeLimitOverride *bool      `form:"time_limit_override,omitempty" json:"time_limit_override,omitempty"`
}

// ExtrasJobsBulkPartialUpdateJSONBody defines parameters for ExtrasJobsBulkPartialUpdate.
type ExtrasJobsBulkPartialUpdateJSONBody = []PatchedBulkWritableJobRequest

// ExtrasJobsBulkUpdateJSONBody defines parameters for ExtrasJobsBulkUpdate.
type ExtrasJobsBulkUpdateJSONBody = []BulkWritableJobRequest

// ExtrasJobsNotesListParams defines parameters for ExtrasJobsNotesList.
type ExtrasJobsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasJobsVariablesListParams defines parameters for ExtrasJobsVariablesList.
type ExtrasJobsVariablesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasNotesBulkDestroyJSONBody defines parameters for ExtrasNotesBulkDestroy.
type ExtrasNotesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasNotesListParams defines parameters for ExtrasNotesList.
type ExtrasNotesListParams struct {
	AssignedObjectId      *[]openapi_types.UUID `form:"assigned_object_id,omitempty" json:"assigned_object_id,omitempty"`
	AssignedObjectIdIc    *[]openapi_types.UUID `form:"assigned_object_id__ic,omitempty" json:"assigned_object_id__ic,omitempty"`
	AssignedObjectIdIe    *[]openapi_types.UUID `form:"assigned_object_id__ie,omitempty" json:"assigned_object_id__ie,omitempty"`
	AssignedObjectIdIew   *[]openapi_types.UUID `form:"assigned_object_id__iew,omitempty" json:"assigned_object_id__iew,omitempty"`
	AssignedObjectIdIre   *[]openapi_types.UUID `form:"assigned_object_id__ire,omitempty" json:"assigned_object_id__ire,omitempty"`
	AssignedObjectIdIsw   *[]openapi_types.UUID `form:"assigned_object_id__isw,omitempty" json:"assigned_object_id__isw,omitempty"`
	AssignedObjectIdN     *[]openapi_types.UUID `form:"assigned_object_id__n,omitempty" json:"assigned_object_id__n,omitempty"`
	AssignedObjectIdNic   *[]openapi_types.UUID `form:"assigned_object_id__nic,omitempty" json:"assigned_object_id__nic,omitempty"`
	AssignedObjectIdNie   *[]openapi_types.UUID `form:"assigned_object_id__nie,omitempty" json:"assigned_object_id__nie,omitempty"`
	AssignedObjectIdNiew  *[]openapi_types.UUID `form:"assigned_object_id__niew,omitempty" json:"assigned_object_id__niew,omitempty"`
	AssignedObjectIdNire  *[]openapi_types.UUID `form:"assigned_object_id__nire,omitempty" json:"assigned_object_id__nire,omitempty"`
	AssignedObjectIdNisw  *[]openapi_types.UUID `form:"assigned_object_id__nisw,omitempty" json:"assigned_object_id__nisw,omitempty"`
	AssignedObjectIdNre   *[]openapi_types.UUID `form:"assigned_object_id__nre,omitempty" json:"assigned_object_id__nre,omitempty"`
	AssignedObjectIdRe    *[]openapi_types.UUID `form:"assigned_object_id__re,omitempty" json:"assigned_object_id__re,omitempty"`
	AssignedObjectType    *string               `form:"assigned_object_type,omitempty" json:"assigned_object_type,omitempty"`
	AssignedObjectTypeN   *string               `form:"assigned_object_type__n,omitempty" json:"assigned_object_type__n,omitempty"`
	AssignedObjectTypeId  *int                  `form:"assigned_object_type_id,omitempty" json:"assigned_object_type_id,omitempty"`
	AssignedObjectTypeIdN *int                  `form:"assigned_object_type_id__n,omitempty" json:"assigned_object_type_id__n,omitempty"`
	Id                    *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                  *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                  *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                 *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                 *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                 *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                   *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                 *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                 *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                 *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                  *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Note     *[]string `form:"note,omitempty" json:"note,omitempty"`
	NoteIc   *[]string `form:"note__ic,omitempty" json:"note__ic,omitempty"`
	NoteIe   *[]string `form:"note__ie,omitempty" json:"note__ie,omitempty"`
	NoteIew  *[]string `form:"note__iew,omitempty" json:"note__iew,omitempty"`
	NoteIre  *[]string `form:"note__ire,omitempty" json:"note__ire,omitempty"`
	NoteIsw  *[]string `form:"note__isw,omitempty" json:"note__isw,omitempty"`
	NoteN    *[]string `form:"note__n,omitempty" json:"note__n,omitempty"`
	NoteNic  *[]string `form:"note__nic,omitempty" json:"note__nic,omitempty"`
	NoteNie  *[]string `form:"note__nie,omitempty" json:"note__nie,omitempty"`
	NoteNiew *[]string `form:"note__niew,omitempty" json:"note__niew,omitempty"`
	NoteNire *[]string `form:"note__nire,omitempty" json:"note__nire,omitempty"`
	NoteNisw *[]string `form:"note__nisw,omitempty" json:"note__nisw,omitempty"`
	NoteNre  *[]string `form:"note__nre,omitempty" json:"note__nre,omitempty"`
	NoteRe   *[]string `form:"note__re,omitempty" json:"note__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// User User (username or ID)
	User *[]openapi_types.UUID `form:"user,omitempty" json:"user,omitempty"`

	// UserN User (username or ID)
	UserN        *[]openapi_types.UUID `form:"user__n,omitempty" json:"user__n,omitempty"`
	UserName     *[]string             `form:"user_name,omitempty" json:"user_name,omitempty"`
	UserNameIc   *[]string             `form:"user_name__ic,omitempty" json:"user_name__ic,omitempty"`
	UserNameIe   *[]string             `form:"user_name__ie,omitempty" json:"user_name__ie,omitempty"`
	UserNameIew  *[]string             `form:"user_name__iew,omitempty" json:"user_name__iew,omitempty"`
	UserNameIre  *[]string             `form:"user_name__ire,omitempty" json:"user_name__ire,omitempty"`
	UserNameIsw  *[]string             `form:"user_name__isw,omitempty" json:"user_name__isw,omitempty"`
	UserNameN    *[]string             `form:"user_name__n,omitempty" json:"user_name__n,omitempty"`
	UserNameNic  *[]string             `form:"user_name__nic,omitempty" json:"user_name__nic,omitempty"`
	UserNameNie  *[]string             `form:"user_name__nie,omitempty" json:"user_name__nie,omitempty"`
	UserNameNiew *[]string             `form:"user_name__niew,omitempty" json:"user_name__niew,omitempty"`
	UserNameNire *[]string             `form:"user_name__nire,omitempty" json:"user_name__nire,omitempty"`
	UserNameNisw *[]string             `form:"user_name__nisw,omitempty" json:"user_name__nisw,omitempty"`
	UserNameNre  *[]string             `form:"user_name__nre,omitempty" json:"user_name__nre,omitempty"`
	UserNameRe   *[]string             `form:"user_name__re,omitempty" json:"user_name__re,omitempty"`
}

// ExtrasNotesBulkPartialUpdateJSONBody defines parameters for ExtrasNotesBulkPartialUpdate.
type ExtrasNotesBulkPartialUpdateJSONBody = []PatchedBulkWritableNoteRequest

// ExtrasNotesBulkUpdateJSONBody defines parameters for ExtrasNotesBulkUpdate.
type ExtrasNotesBulkUpdateJSONBody = []BulkWritableNoteRequest

// ExtrasObjectChangesListParams defines parameters for ExtrasObjectChangesList.
type ExtrasObjectChangesListParams struct {
	Action               *string               `form:"action,omitempty" json:"action,omitempty"`
	ActionN              *string               `form:"action__n,omitempty" json:"action__n,omitempty"`
	ChangedObjectId      *[]openapi_types.UUID `form:"changed_object_id,omitempty" json:"changed_object_id,omitempty"`
	ChangedObjectIdIc    *[]openapi_types.UUID `form:"changed_object_id__ic,omitempty" json:"changed_object_id__ic,omitempty"`
	ChangedObjectIdIe    *[]openapi_types.UUID `form:"changed_object_id__ie,omitempty" json:"changed_object_id__ie,omitempty"`
	ChangedObjectIdIew   *[]openapi_types.UUID `form:"changed_object_id__iew,omitempty" json:"changed_object_id__iew,omitempty"`
	ChangedObjectIdIre   *[]openapi_types.UUID `form:"changed_object_id__ire,omitempty" json:"changed_object_id__ire,omitempty"`
	ChangedObjectIdIsw   *[]openapi_types.UUID `form:"changed_object_id__isw,omitempty" json:"changed_object_id__isw,omitempty"`
	ChangedObjectIdN     *[]openapi_types.UUID `form:"changed_object_id__n,omitempty" json:"changed_object_id__n,omitempty"`
	ChangedObjectIdNic   *[]openapi_types.UUID `form:"changed_object_id__nic,omitempty" json:"changed_object_id__nic,omitempty"`
	ChangedObjectIdNie   *[]openapi_types.UUID `form:"changed_object_id__nie,omitempty" json:"changed_object_id__nie,omitempty"`
	ChangedObjectIdNiew  *[]openapi_types.UUID `form:"changed_object_id__niew,omitempty" json:"changed_object_id__niew,omitempty"`
	ChangedObjectIdNire  *[]openapi_types.UUID `form:"changed_object_id__nire,omitempty" json:"changed_object_id__nire,omitempty"`
	ChangedObjectIdNisw  *[]openapi_types.UUID `form:"changed_object_id__nisw,omitempty" json:"changed_object_id__nisw,omitempty"`
	ChangedObjectIdNre   *[]openapi_types.UUID `form:"changed_object_id__nre,omitempty" json:"changed_object_id__nre,omitempty"`
	ChangedObjectIdRe    *[]openapi_types.UUID `form:"changed_object_id__re,omitempty" json:"changed_object_id__re,omitempty"`
	ChangedObjectType    *string               `form:"changed_object_type,omitempty" json:"changed_object_type,omitempty"`
	ChangedObjectTypeN   *string               `form:"changed_object_type__n,omitempty" json:"changed_object_type__n,omitempty"`
	ChangedObjectTypeId  *int                  `form:"changed_object_type_id,omitempty" json:"changed_object_type_id,omitempty"`
	ChangedObjectTypeIdN *int                  `form:"changed_object_type_id__n,omitempty" json:"changed_object_type_id__n,omitempty"`
	Id                   *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                 *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                 *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                  *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew               *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire               *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw               *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                 *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit          *int      `form:"limit,omitempty" json:"limit,omitempty"`
	ObjectRepr     *[]string `form:"object_repr,omitempty" json:"object_repr,omitempty"`
	ObjectReprIc   *[]string `form:"object_repr__ic,omitempty" json:"object_repr__ic,omitempty"`
	ObjectReprIe   *[]string `form:"object_repr__ie,omitempty" json:"object_repr__ie,omitempty"`
	ObjectReprIew  *[]string `form:"object_repr__iew,omitempty" json:"object_repr__iew,omitempty"`
	ObjectReprIre  *[]string `form:"object_repr__ire,omitempty" json:"object_repr__ire,omitempty"`
	ObjectReprIsw  *[]string `form:"object_repr__isw,omitempty" json:"object_repr__isw,omitempty"`
	ObjectReprN    *[]string `form:"object_repr__n,omitempty" json:"object_repr__n,omitempty"`
	ObjectReprNic  *[]string `form:"object_repr__nic,omitempty" json:"object_repr__nic,omitempty"`
	ObjectReprNie  *[]string `form:"object_repr__nie,omitempty" json:"object_repr__nie,omitempty"`
	ObjectReprNiew *[]string `form:"object_repr__niew,omitempty" json:"object_repr__niew,omitempty"`
	ObjectReprNire *[]string `form:"object_repr__nire,omitempty" json:"object_repr__nire,omitempty"`
	ObjectReprNisw *[]string `form:"object_repr__nisw,omitempty" json:"object_repr__nisw,omitempty"`
	ObjectReprNre  *[]string `form:"object_repr__nre,omitempty" json:"object_repr__nre,omitempty"`
	ObjectReprRe   *[]string `form:"object_repr__re,omitempty" json:"object_repr__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q             *string               `form:"q,omitempty" json:"q,omitempty"`
	RequestId     *[]openapi_types.UUID `form:"request_id,omitempty" json:"request_id,omitempty"`
	RequestIdIc   *[]openapi_types.UUID `form:"request_id__ic,omitempty" json:"request_id__ic,omitempty"`
	RequestIdIe   *[]openapi_types.UUID `form:"request_id__ie,omitempty" json:"request_id__ie,omitempty"`
	RequestIdIew  *[]openapi_types.UUID `form:"request_id__iew,omitempty" json:"request_id__iew,omitempty"`
	RequestIdIre  *[]openapi_types.UUID `form:"request_id__ire,omitempty" json:"request_id__ire,omitempty"`
	RequestIdIsw  *[]openapi_types.UUID `form:"request_id__isw,omitempty" json:"request_id__isw,omitempty"`
	RequestIdN    *[]openapi_types.UUID `form:"request_id__n,omitempty" json:"request_id__n,omitempty"`
	RequestIdNic  *[]openapi_types.UUID `form:"request_id__nic,omitempty" json:"request_id__nic,omitempty"`
	RequestIdNie  *[]openapi_types.UUID `form:"request_id__nie,omitempty" json:"request_id__nie,omitempty"`
	RequestIdNiew *[]openapi_types.UUID `form:"request_id__niew,omitempty" json:"request_id__niew,omitempty"`
	RequestIdNire *[]openapi_types.UUID `form:"request_id__nire,omitempty" json:"request_id__nire,omitempty"`
	RequestIdNisw *[]openapi_types.UUID `form:"request_id__nisw,omitempty" json:"request_id__nisw,omitempty"`
	RequestIdNre  *[]openapi_types.UUID `form:"request_id__nre,omitempty" json:"request_id__nre,omitempty"`
	RequestIdRe   *[]openapi_types.UUID `form:"request_id__re,omitempty" json:"request_id__re,omitempty"`
	Time          *[]time.Time          `form:"time,omitempty" json:"time,omitempty"`
	TimeGt        *[]time.Time          `form:"time__gt,omitempty" json:"time__gt,omitempty"`
	TimeGte       *[]time.Time          `form:"time__gte,omitempty" json:"time__gte,omitempty"`
	TimeLt        *[]time.Time          `form:"time__lt,omitempty" json:"time__lt,omitempty"`
	TimeLte       *[]time.Time          `form:"time__lte,omitempty" json:"time__lte,omitempty"`
	TimeN         *[]time.Time          `form:"time__n,omitempty" json:"time__n,omitempty"`

	// User User name
	User *[]string `form:"user,omitempty" json:"user,omitempty"`

	// UserN User name
	UserN *[]string `form:"user__n,omitempty" json:"user__n,omitempty"`

	// UserId User (ID)
	UserId *[]openapi_types.UUID `form:"user_id,omitempty" json:"user_id,omitempty"`

	// UserIdN User (ID)
	UserIdN      *[]openapi_types.UUID `form:"user_id__n,omitempty" json:"user_id__n,omitempty"`
	UserName     *[]string             `form:"user_name,omitempty" json:"user_name,omitempty"`
	UserNameIc   *[]string             `form:"user_name__ic,omitempty" json:"user_name__ic,omitempty"`
	UserNameIe   *[]string             `form:"user_name__ie,omitempty" json:"user_name__ie,omitempty"`
	UserNameIew  *[]string             `form:"user_name__iew,omitempty" json:"user_name__iew,omitempty"`
	UserNameIre  *[]string             `form:"user_name__ire,omitempty" json:"user_name__ire,omitempty"`
	UserNameIsw  *[]string             `form:"user_name__isw,omitempty" json:"user_name__isw,omitempty"`
	UserNameN    *[]string             `form:"user_name__n,omitempty" json:"user_name__n,omitempty"`
	UserNameNic  *[]string             `form:"user_name__nic,omitempty" json:"user_name__nic,omitempty"`
	UserNameNie  *[]string             `form:"user_name__nie,omitempty" json:"user_name__nie,omitempty"`
	UserNameNiew *[]string             `form:"user_name__niew,omitempty" json:"user_name__niew,omitempty"`
	UserNameNire *[]string             `form:"user_name__nire,omitempty" json:"user_name__nire,omitempty"`
	UserNameNisw *[]string             `form:"user_name__nisw,omitempty" json:"user_name__nisw,omitempty"`
	UserNameNre  *[]string             `form:"user_name__nre,omitempty" json:"user_name__nre,omitempty"`
	UserNameRe   *[]string             `form:"user_name__re,omitempty" json:"user_name__re,omitempty"`
}

// ExtrasRelationshipAssociationsBulkDestroyJSONBody defines parameters for ExtrasRelationshipAssociationsBulkDestroy.
type ExtrasRelationshipAssociationsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasRelationshipAssociationsListParams defines parameters for ExtrasRelationshipAssociationsList.
type ExtrasRelationshipAssociationsListParams struct {
	DestinationId     *[]openapi_types.UUID `form:"destination_id,omitempty" json:"destination_id,omitempty"`
	DestinationIdIc   *[]openapi_types.UUID `form:"destination_id__ic,omitempty" json:"destination_id__ic,omitempty"`
	DestinationIdIe   *[]openapi_types.UUID `form:"destination_id__ie,omitempty" json:"destination_id__ie,omitempty"`
	DestinationIdIew  *[]openapi_types.UUID `form:"destination_id__iew,omitempty" json:"destination_id__iew,omitempty"`
	DestinationIdIre  *[]openapi_types.UUID `form:"destination_id__ire,omitempty" json:"destination_id__ire,omitempty"`
	DestinationIdIsw  *[]openapi_types.UUID `form:"destination_id__isw,omitempty" json:"destination_id__isw,omitempty"`
	DestinationIdN    *[]openapi_types.UUID `form:"destination_id__n,omitempty" json:"destination_id__n,omitempty"`
	DestinationIdNic  *[]openapi_types.UUID `form:"destination_id__nic,omitempty" json:"destination_id__nic,omitempty"`
	DestinationIdNie  *[]openapi_types.UUID `form:"destination_id__nie,omitempty" json:"destination_id__nie,omitempty"`
	DestinationIdNiew *[]openapi_types.UUID `form:"destination_id__niew,omitempty" json:"destination_id__niew,omitempty"`
	DestinationIdNire *[]openapi_types.UUID `form:"destination_id__nire,omitempty" json:"destination_id__nire,omitempty"`
	DestinationIdNisw *[]openapi_types.UUID `form:"destination_id__nisw,omitempty" json:"destination_id__nisw,omitempty"`
	DestinationIdNre  *[]openapi_types.UUID `form:"destination_id__nre,omitempty" json:"destination_id__nre,omitempty"`
	DestinationIdRe   *[]openapi_types.UUID `form:"destination_id__re,omitempty" json:"destination_id__re,omitempty"`
	DestinationType   *[]int                `form:"destination_type,omitempty" json:"destination_type,omitempty"`
	DestinationTypeN  *[]int                `form:"destination_type__n,omitempty" json:"destination_type__n,omitempty"`
	Id                *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc              *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe              *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew             *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre             *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw             *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN               *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic             *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie             *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew            *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire            *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw            *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre             *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe              *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int                  `form:"offset,omitempty" json:"offset,omitempty"`
	PeerId *[]openapi_types.UUID `form:"peer_id,omitempty" json:"peer_id,omitempty"`

	// Relationship Relationship (slug)
	Relationship *[]string `form:"relationship,omitempty" json:"relationship,omitempty"`

	// RelationshipN Relationship (slug)
	RelationshipN *[]string             `form:"relationship__n,omitempty" json:"relationship__n,omitempty"`
	SourceId      *[]openapi_types.UUID `form:"source_id,omitempty" json:"source_id,omitempty"`
	SourceIdIc    *[]openapi_types.UUID `form:"source_id__ic,omitempty" json:"source_id__ic,omitempty"`
	SourceIdIe    *[]openapi_types.UUID `form:"source_id__ie,omitempty" json:"source_id__ie,omitempty"`
	SourceIdIew   *[]openapi_types.UUID `form:"source_id__iew,omitempty" json:"source_id__iew,omitempty"`
	SourceIdIre   *[]openapi_types.UUID `form:"source_id__ire,omitempty" json:"source_id__ire,omitempty"`
	SourceIdIsw   *[]openapi_types.UUID `form:"source_id__isw,omitempty" json:"source_id__isw,omitempty"`
	SourceIdN     *[]openapi_types.UUID `form:"source_id__n,omitempty" json:"source_id__n,omitempty"`
	SourceIdNic   *[]openapi_types.UUID `form:"source_id__nic,omitempty" json:"source_id__nic,omitempty"`
	SourceIdNie   *[]openapi_types.UUID `form:"source_id__nie,omitempty" json:"source_id__nie,omitempty"`
	SourceIdNiew  *[]openapi_types.UUID `form:"source_id__niew,omitempty" json:"source_id__niew,omitempty"`
	SourceIdNire  *[]openapi_types.UUID `form:"source_id__nire,omitempty" json:"source_id__nire,omitempty"`
	SourceIdNisw  *[]openapi_types.UUID `form:"source_id__nisw,omitempty" json:"source_id__nisw,omitempty"`
	SourceIdNre   *[]openapi_types.UUID `form:"source_id__nre,omitempty" json:"source_id__nre,omitempty"`
	SourceIdRe    *[]openapi_types.UUID `form:"source_id__re,omitempty" json:"source_id__re,omitempty"`
	SourceType    *[]int                `form:"source_type,omitempty" json:"source_type,omitempty"`
	SourceTypeN   *[]int                `form:"source_type__n,omitempty" json:"source_type__n,omitempty"`
}

// ExtrasRelationshipAssociationsBulkPartialUpdateJSONBody defines parameters for ExtrasRelationshipAssociationsBulkPartialUpdate.
type ExtrasRelationshipAssociationsBulkPartialUpdateJSONBody = []PatchedBulkWritableRelationshipAssociationRequest

// ExtrasRelationshipAssociationsBulkUpdateJSONBody defines parameters for ExtrasRelationshipAssociationsBulkUpdate.
type ExtrasRelationshipAssociationsBulkUpdateJSONBody = []BulkWritableRelationshipAssociationRequest

// ExtrasRelationshipsBulkDestroyJSONBody defines parameters for ExtrasRelationshipsBulkDestroy.
type ExtrasRelationshipsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasRelationshipsListParams defines parameters for ExtrasRelationshipsList.
type ExtrasRelationshipsListParams struct {
	DestinationType  *[]int                `form:"destination_type,omitempty" json:"destination_type,omitempty"`
	DestinationTypeN *[]int                `form:"destination_type__n,omitempty" json:"destination_type__n,omitempty"`
	Id               *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc             *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe             *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew            *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre            *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw            *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN              *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic            *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie            *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew           *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire           *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw           *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre            *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe             *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q           *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug        *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc      *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe      *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew     *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre     *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw     *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN       *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic     *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie     *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew    *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire    *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw    *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre     *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe      *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	SourceType  *[]int    `form:"source_type,omitempty" json:"source_type,omitempty"`
	SourceTypeN *[]int    `form:"source_type__n,omitempty" json:"source_type__n,omitempty"`

	// Type Cardinality of this relationship
	Type *string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Cardinality of this relationship
	TypeN *string `form:"type__n,omitempty" json:"type__n,omitempty"`
}

// ExtrasRelationshipsBulkPartialUpdateJSONBody defines parameters for ExtrasRelationshipsBulkPartialUpdate.
type ExtrasRelationshipsBulkPartialUpdateJSONBody = []PatchedBulkWritableRelationshipRequest

// ExtrasRelationshipsBulkUpdateJSONBody defines parameters for ExtrasRelationshipsBulkUpdate.
type ExtrasRelationshipsBulkUpdateJSONBody = []BulkWritableRelationshipRequest

// ExtrasRelationshipsNotesListParams defines parameters for ExtrasRelationshipsNotesList.
type ExtrasRelationshipsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasScheduledJobsListParams defines parameters for ExtrasScheduledJobsList.
type ExtrasScheduledJobsListParams struct {
	FirstRun *time.Time            `form:"first_run,omitempty" json:"first_run,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// JobModel Job (slug)
	JobModel *[]string `form:"job_model,omitempty" json:"job_model,omitempty"`

	// JobModelN Job (slug)
	JobModelN *[]string `form:"job_model__n,omitempty" json:"job_model__n,omitempty"`

	// JobModelId Job (ID)
	JobModelId *[]openapi_types.UUID `form:"job_model_id,omitempty" json:"job_model_id,omitempty"`

	// JobModelIdN Job (ID)
	JobModelIdN *[]openapi_types.UUID `form:"job_model_id__n,omitempty" json:"job_model_id__n,omitempty"`
	LastRun     *time.Time            `form:"last_run,omitempty" json:"last_run,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                *string `form:"q,omitempty" json:"q,omitempty"`
	TotalRunCount    *[]int  `form:"total_run_count,omitempty" json:"total_run_count,omitempty"`
	TotalRunCountGt  *[]int  `form:"total_run_count__gt,omitempty" json:"total_run_count__gt,omitempty"`
	TotalRunCountGte *[]int  `form:"total_run_count__gte,omitempty" json:"total_run_count__gte,omitempty"`
	TotalRunCountLt  *[]int  `form:"total_run_count__lt,omitempty" json:"total_run_count__lt,omitempty"`
	TotalRunCountLte *[]int  `form:"total_run_count__lte,omitempty" json:"total_run_count__lte,omitempty"`
	TotalRunCountN   *[]int  `form:"total_run_count__n,omitempty" json:"total_run_count__n,omitempty"`
}

// ExtrasScheduledJobsApproveCreateParams defines parameters for ExtrasScheduledJobsApproveCreate.
type ExtrasScheduledJobsApproveCreateParams struct {
	// Force force execution even if start time has passed
	Force *bool `form:"force,omitempty" json:"force,omitempty"`
}

// ExtrasSecretsGroupsAssociationsBulkDestroyJSONBody defines parameters for ExtrasSecretsGroupsAssociationsBulkDestroy.
type ExtrasSecretsGroupsAssociationsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasSecretsGroupsAssociationsListParams defines parameters for ExtrasSecretsGroupsAssociationsList.
type ExtrasSecretsGroupsAssociationsListParams struct {
	AccessType  *[]string `form:"access_type,omitempty" json:"access_type,omitempty"`
	AccessTypeN *[]string `form:"access_type__n,omitempty" json:"access_type__n,omitempty"`

	// Group Group (slug)
	Group *[]string `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Group (slug)
	GroupN *[]string `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Group (ID)
	GroupIdN *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Secret Secret (slug)
	Secret *[]string `form:"secret,omitempty" json:"secret,omitempty"`

	// SecretN Secret (slug)
	SecretN *[]string `form:"secret__n,omitempty" json:"secret__n,omitempty"`

	// SecretId Secret (ID)
	SecretId *[]openapi_types.UUID `form:"secret_id,omitempty" json:"secret_id,omitempty"`

	// SecretIdN Secret (ID)
	SecretIdN   *[]openapi_types.UUID `form:"secret_id__n,omitempty" json:"secret_id__n,omitempty"`
	SecretType  *[]string             `form:"secret_type,omitempty" json:"secret_type,omitempty"`
	SecretTypeN *[]string             `form:"secret_type__n,omitempty" json:"secret_type__n,omitempty"`
}

// ExtrasSecretsGroupsAssociationsBulkPartialUpdateJSONBody defines parameters for ExtrasSecretsGroupsAssociationsBulkPartialUpdate.
type ExtrasSecretsGroupsAssociationsBulkPartialUpdateJSONBody = []PatchedBulkWritableSecretsGroupAssociationRequest

// ExtrasSecretsGroupsAssociationsBulkUpdateJSONBody defines parameters for ExtrasSecretsGroupsAssociationsBulkUpdate.
type ExtrasSecretsGroupsAssociationsBulkUpdateJSONBody = []BulkWritableSecretsGroupAssociationRequest

// ExtrasSecretsGroupsBulkDestroyJSONBody defines parameters for ExtrasSecretsGroupsBulkDestroy.
type ExtrasSecretsGroupsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasSecretsGroupsListParams defines parameters for ExtrasSecretsGroupsList.
type ExtrasSecretsGroupsListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasSecretsGroupsBulkPartialUpdateJSONBody defines parameters for ExtrasSecretsGroupsBulkPartialUpdate.
type ExtrasSecretsGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableSecretsGroupRequest

// ExtrasSecretsGroupsBulkUpdateJSONBody defines parameters for ExtrasSecretsGroupsBulkUpdate.
type ExtrasSecretsGroupsBulkUpdateJSONBody = []BulkWritableSecretsGroupRequest

// ExtrasSecretsGroupsNotesListParams defines parameters for ExtrasSecretsGroupsNotesList.
type ExtrasSecretsGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasSecretsBulkDestroyJSONBody defines parameters for ExtrasSecretsBulkDestroy.
type ExtrasSecretsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasSecretsListParams defines parameters for ExtrasSecretsList.
type ExtrasSecretsListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset       *int      `form:"offset,omitempty" json:"offset,omitempty"`
	Provider     *[]string `form:"provider,omitempty" json:"provider,omitempty"`
	ProviderIc   *[]string `form:"provider__ic,omitempty" json:"provider__ic,omitempty"`
	ProviderIe   *[]string `form:"provider__ie,omitempty" json:"provider__ie,omitempty"`
	ProviderIew  *[]string `form:"provider__iew,omitempty" json:"provider__iew,omitempty"`
	ProviderIre  *[]string `form:"provider__ire,omitempty" json:"provider__ire,omitempty"`
	ProviderIsw  *[]string `form:"provider__isw,omitempty" json:"provider__isw,omitempty"`
	ProviderN    *[]string `form:"provider__n,omitempty" json:"provider__n,omitempty"`
	ProviderNic  *[]string `form:"provider__nic,omitempty" json:"provider__nic,omitempty"`
	ProviderNie  *[]string `form:"provider__nie,omitempty" json:"provider__nie,omitempty"`
	ProviderNiew *[]string `form:"provider__niew,omitempty" json:"provider__niew,omitempty"`
	ProviderNire *[]string `form:"provider__nire,omitempty" json:"provider__nire,omitempty"`
	ProviderNisw *[]string `form:"provider__nisw,omitempty" json:"provider__nisw,omitempty"`
	ProviderNre  *[]string `form:"provider__nre,omitempty" json:"provider__nre,omitempty"`
	ProviderRe   *[]string `form:"provider__re,omitempty" json:"provider__re,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasSecretsBulkPartialUpdateJSONBody defines parameters for ExtrasSecretsBulkPartialUpdate.
type ExtrasSecretsBulkPartialUpdateJSONBody = []PatchedBulkWritableSecretRequest

// ExtrasSecretsBulkUpdateJSONBody defines parameters for ExtrasSecretsBulkUpdate.
type ExtrasSecretsBulkUpdateJSONBody = []BulkWritableSecretRequest

// ExtrasSecretsNotesListParams defines parameters for ExtrasSecretsNotesList.
type ExtrasSecretsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasStatusesBulkDestroyJSONBody defines parameters for ExtrasStatusesBulkDestroy.
type ExtrasStatusesBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasStatusesListParams defines parameters for ExtrasStatusesList.
type ExtrasStatusesListParams struct {
	Color          *[]string             `form:"color,omitempty" json:"color,omitempty"`
	ColorIc        *[]string             `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe        *[]string             `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew       *[]string             `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre       *[]string             `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw       *[]string             `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN         *[]string             `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic       *[]string             `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie       *[]string             `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew      *[]string             `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire      *[]string             `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw      *[]string             `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre       *[]string             `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe        *[]string             `form:"color__re,omitempty" json:"color__re,omitempty"`
	ContentTypes   *[]int                `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN  *[]int                `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasStatusesBulkPartialUpdateJSONBody defines parameters for ExtrasStatusesBulkPartialUpdate.
type ExtrasStatusesBulkPartialUpdateJSONBody = []PatchedBulkWritableStatusRequest

// ExtrasStatusesBulkUpdateJSONBody defines parameters for ExtrasStatusesBulkUpdate.
type ExtrasStatusesBulkUpdateJSONBody = []BulkWritableStatusRequest

// ExtrasStatusesNotesListParams defines parameters for ExtrasStatusesNotesList.
type ExtrasStatusesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasTagsBulkDestroyJSONBody defines parameters for ExtrasTagsBulkDestroy.
type ExtrasTagsBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasTagsListParams defines parameters for ExtrasTagsList.
type ExtrasTagsListParams struct {
	Color          *[]string             `form:"color,omitempty" json:"color,omitempty"`
	ColorIc        *[]string             `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe        *[]string             `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew       *[]string             `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre       *[]string             `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw       *[]string             `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN         *[]string             `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic       *[]string             `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie       *[]string             `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew      *[]string             `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire      *[]string             `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw      *[]string             `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre       *[]string             `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe        *[]string             `form:"color__re,omitempty" json:"color__re,omitempty"`
	ContentTypes   *[]int                `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN  *[]int                `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// ExtrasTagsBulkPartialUpdateJSONBody defines parameters for ExtrasTagsBulkPartialUpdate.
type ExtrasTagsBulkPartialUpdateJSONBody = []PatchedBulkWritableTagSerializerVersion13Request

// ExtrasTagsBulkUpdateJSONBody defines parameters for ExtrasTagsBulkUpdate.
type ExtrasTagsBulkUpdateJSONBody = []BulkWritableTagSerializerVersion13Request

// ExtrasTagsNotesListParams defines parameters for ExtrasTagsNotesList.
type ExtrasTagsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// ExtrasWebhooksBulkDestroyJSONBody defines parameters for ExtrasWebhooksBulkDestroy.
type ExtrasWebhooksBulkDestroyJSONBody = []BulkOperationRequest

// ExtrasWebhooksListParams defines parameters for ExtrasWebhooksList.
type ExtrasWebhooksListParams struct {
	ContentTypes  *[]int                `form:"content_types,omitempty" json:"content_types,omitempty"`
	ContentTypesN *[]int                `form:"content_types__n,omitempty" json:"content_types__n,omitempty"`
	Enabled       *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	Id            *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc          *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe          *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew         *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre         *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw         *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN           *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic         *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie         *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew        *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire        *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw        *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre         *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe          *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset         *int      `form:"offset,omitempty" json:"offset,omitempty"`
	PayloadUrl     *[]string `form:"payload_url,omitempty" json:"payload_url,omitempty"`
	PayloadUrlIc   *[]string `form:"payload_url__ic,omitempty" json:"payload_url__ic,omitempty"`
	PayloadUrlIe   *[]string `form:"payload_url__ie,omitempty" json:"payload_url__ie,omitempty"`
	PayloadUrlIew  *[]string `form:"payload_url__iew,omitempty" json:"payload_url__iew,omitempty"`
	PayloadUrlIre  *[]string `form:"payload_url__ire,omitempty" json:"payload_url__ire,omitempty"`
	PayloadUrlIsw  *[]string `form:"payload_url__isw,omitempty" json:"payload_url__isw,omitempty"`
	PayloadUrlN    *[]string `form:"payload_url__n,omitempty" json:"payload_url__n,omitempty"`
	PayloadUrlNic  *[]string `form:"payload_url__nic,omitempty" json:"payload_url__nic,omitempty"`
	PayloadUrlNie  *[]string `form:"payload_url__nie,omitempty" json:"payload_url__nie,omitempty"`
	PayloadUrlNiew *[]string `form:"payload_url__niew,omitempty" json:"payload_url__niew,omitempty"`
	PayloadUrlNire *[]string `form:"payload_url__nire,omitempty" json:"payload_url__nire,omitempty"`
	PayloadUrlNisw *[]string `form:"payload_url__nisw,omitempty" json:"payload_url__nisw,omitempty"`
	PayloadUrlNre  *[]string `form:"payload_url__nre,omitempty" json:"payload_url__nre,omitempty"`
	PayloadUrlRe   *[]string `form:"payload_url__re,omitempty" json:"payload_url__re,omitempty"`

	// Q Search
	Q          *string `form:"q,omitempty" json:"q,omitempty"`
	TypeCreate *bool   `form:"type_create,omitempty" json:"type_create,omitempty"`
	TypeDelete *bool   `form:"type_delete,omitempty" json:"type_delete,omitempty"`
	TypeUpdate *bool   `form:"type_update,omitempty" json:"type_update,omitempty"`
}

// ExtrasWebhooksBulkPartialUpdateJSONBody defines parameters for ExtrasWebhooksBulkPartialUpdate.
type ExtrasWebhooksBulkPartialUpdateJSONBody = []PatchedBulkWritableWebhookRequest

// ExtrasWebhooksBulkUpdateJSONBody defines parameters for ExtrasWebhooksBulkUpdate.
type ExtrasWebhooksBulkUpdateJSONBody = []BulkWritableWebhookRequest

// ExtrasWebhooksNotesListParams defines parameters for ExtrasWebhooksNotesList.
type ExtrasWebhooksNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamAggregatesBulkDestroyJSONBody defines parameters for IpamAggregatesBulkDestroy.
type IpamAggregatesBulkDestroyJSONBody = []BulkOperationRequest

// IpamAggregatesListParams defines parameters for IpamAggregatesList.
type IpamAggregatesListParams struct {
	Created      *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte   *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte   *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	DateAdded    *[]openapi_types.Date `form:"date_added,omitempty" json:"date_added,omitempty"`
	DateAddedGt  *[]openapi_types.Date `form:"date_added__gt,omitempty" json:"date_added__gt,omitempty"`
	DateAddedGte *[]openapi_types.Date `form:"date_added__gte,omitempty" json:"date_added__gte,omitempty"`
	DateAddedLt  *[]openapi_types.Date `form:"date_added__lt,omitempty" json:"date_added__lt,omitempty"`
	DateAddedLte *[]openapi_types.Date `form:"date_added__lte,omitempty" json:"date_added__lte,omitempty"`
	DateAddedN   *[]openapi_types.Date `form:"date_added__n,omitempty" json:"date_added__n,omitempty"`

	// Family Family
	Family         *float32              `form:"family,omitempty" json:"family,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Prefix Prefix
	Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rir RIR (slug)
	Rir *[]string `form:"rir,omitempty" json:"rir,omitempty"`

	// RirN RIR (slug)
	RirN *[]string `form:"rir__n,omitempty" json:"rir__n,omitempty"`

	// RirId RIR (ID)
	RirId *[]openapi_types.UUID `form:"rir_id,omitempty" json:"rir_id,omitempty"`

	// RirIdN RIR (ID)
	RirIdN *[]openapi_types.UUID `form:"rir_id__n,omitempty" json:"rir_id__n,omitempty"`
	Tag    *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN   *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// IpamAggregatesBulkPartialUpdateJSONBody defines parameters for IpamAggregatesBulkPartialUpdate.
type IpamAggregatesBulkPartialUpdateJSONBody = []PatchedBulkWritableAggregateRequest

// IpamAggregatesBulkUpdateJSONBody defines parameters for IpamAggregatesBulkUpdate.
type IpamAggregatesBulkUpdateJSONBody = []BulkWritableAggregateRequest

// IpamAggregatesNotesListParams defines parameters for IpamAggregatesNotesList.
type IpamAggregatesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamIpAddressesBulkDestroyJSONBody defines parameters for IpamIpAddressesBulkDestroy.
type IpamIpAddressesBulkDestroyJSONBody = []BulkOperationRequest

// IpamIpAddressesListParams defines parameters for IpamIpAddressesList.
type IpamIpAddressesListParams struct {
	// Address Address
	Address *[]string `form:"address,omitempty" json:"address,omitempty"`

	// AssignedToInterface Is assigned to an interface
	AssignedToInterface *bool               `form:"assigned_to_interface,omitempty" json:"assigned_to_interface,omitempty"`
	Created             *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte          *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte          *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device (ID)
	DeviceId    *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`
	DnsName     *[]string             `form:"dns_name,omitempty" json:"dns_name,omitempty"`
	DnsNameIc   *[]string             `form:"dns_name__ic,omitempty" json:"dns_name__ic,omitempty"`
	DnsNameIe   *[]string             `form:"dns_name__ie,omitempty" json:"dns_name__ie,omitempty"`
	DnsNameIew  *[]string             `form:"dns_name__iew,omitempty" json:"dns_name__iew,omitempty"`
	DnsNameIre  *[]string             `form:"dns_name__ire,omitempty" json:"dns_name__ire,omitempty"`
	DnsNameIsw  *[]string             `form:"dns_name__isw,omitempty" json:"dns_name__isw,omitempty"`
	DnsNameN    *[]string             `form:"dns_name__n,omitempty" json:"dns_name__n,omitempty"`
	DnsNameNic  *[]string             `form:"dns_name__nic,omitempty" json:"dns_name__nic,omitempty"`
	DnsNameNie  *[]string             `form:"dns_name__nie,omitempty" json:"dns_name__nie,omitempty"`
	DnsNameNiew *[]string             `form:"dns_name__niew,omitempty" json:"dns_name__niew,omitempty"`
	DnsNameNire *[]string             `form:"dns_name__nire,omitempty" json:"dns_name__nire,omitempty"`
	DnsNameNisw *[]string             `form:"dns_name__nisw,omitempty" json:"dns_name__nisw,omitempty"`
	DnsNameNre  *[]string             `form:"dns_name__nre,omitempty" json:"dns_name__nre,omitempty"`
	DnsNameRe   *[]string             `form:"dns_name__re,omitempty" json:"dns_name__re,omitempty"`

	// Family Family
	Family *float32              `form:"family,omitempty" json:"family,omitempty"`
	Id     *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc   *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe   *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew  *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre  *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw  *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN    *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic  *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie  *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre  *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe   *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Interface Interface (name)
	Interface *[]string `form:"interface,omitempty" json:"interface,omitempty"`

	// InterfaceN Interface (name)
	InterfaceN *[]string `form:"interface__n,omitempty" json:"interface__n,omitempty"`

	// InterfaceId Interface (ID)
	InterfaceId *[]openapi_types.UUID `form:"interface_id,omitempty" json:"interface_id,omitempty"`

	// InterfaceIdN Interface (ID)
	InterfaceIdN   *[]openapi_types.UUID `form:"interface_id__n,omitempty" json:"interface_id__n,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// MaskLength Mask length
	MaskLength *float32 `form:"mask_length,omitempty" json:"mask_length,omitempty"`

	// NautobotBgpModelsIpsBgpRoutingInstance Routing Instance UUID
	NautobotBgpModelsIpsBgpRoutingInstance     *[]string             `form:"nautobot_bgp_models_ips_bgp_routing_instance,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceIc   *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__ic,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__ic,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceIe   *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__ie,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__ie,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceIew  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__iew,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__iew,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceIre  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__ire,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__ire,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceIsw  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__isw,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__isw,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceN    *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__n,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__n,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNic  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__nic,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__nic,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNie  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__nie,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__nie,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNiew *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__niew,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__niew,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNire *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__nire,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__nire,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNisw *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__nisw,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__nisw,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceNre  *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__nre,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__nre,omitempty"`
	NautobotBgpModelsIpsBgpRoutingInstanceRe   *[]openapi_types.UUID `form:"nautobot_bgp_models_ips_bgp_routing_instance__re,omitempty" json:"nautobot_bgp_models_ips_bgp_routing_instance__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Parent prefix
	Parent *string `form:"parent,omitempty" json:"parent,omitempty"`

	// PresentInVrf VRF (RD)
	PresentInVrf *string `form:"present_in_vrf,omitempty" json:"present_in_vrf,omitempty"`

	// PresentInVrfId VRF
	PresentInVrfId *openapi_types.UUID `form:"present_in_vrf_id,omitempty" json:"present_in_vrf_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Role The functional role of this IP
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN The functional role of this IP
	RoleN   *[]string             `form:"role__n,omitempty" json:"role__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// VirtualMachine Virtual machine (name)
	VirtualMachine *[]string `form:"virtual_machine,omitempty" json:"virtual_machine,omitempty"`

	// VirtualMachineId Virtual machine (ID)
	VirtualMachineId *[]openapi_types.UUID `form:"virtual_machine_id,omitempty" json:"virtual_machine_id,omitempty"`

	// Vminterface VM interface (name)
	Vminterface *[]string `form:"vminterface,omitempty" json:"vminterface,omitempty"`

	// VminterfaceN VM interface (name)
	VminterfaceN *[]string `form:"vminterface__n,omitempty" json:"vminterface__n,omitempty"`

	// VminterfaceId VM interface (ID)
	VminterfaceId *[]openapi_types.UUID `form:"vminterface_id,omitempty" json:"vminterface_id,omitempty"`

	// VminterfaceIdN VM interface (ID)
	VminterfaceIdN *[]openapi_types.UUID `form:"vminterface_id__n,omitempty" json:"vminterface_id__n,omitempty"`

	// Vrf VRF (RD)
	Vrf *[]string `form:"vrf,omitempty" json:"vrf,omitempty"`

	// VrfN VRF (RD)
	VrfN *[]string `form:"vrf__n,omitempty" json:"vrf__n,omitempty"`

	// VrfId VRF
	VrfId *[]openapi_types.UUID `form:"vrf_id,omitempty" json:"vrf_id,omitempty"`

	// VrfIdN VRF
	VrfIdN *[]openapi_types.UUID `form:"vrf_id__n,omitempty" json:"vrf_id__n,omitempty"`
}

// IpamIpAddressesBulkPartialUpdateJSONBody defines parameters for IpamIpAddressesBulkPartialUpdate.
type IpamIpAddressesBulkPartialUpdateJSONBody = []PatchedBulkWritableIPAddressRequest

// IpamIpAddressesBulkUpdateJSONBody defines parameters for IpamIpAddressesBulkUpdate.
type IpamIpAddressesBulkUpdateJSONBody = []BulkWritableIPAddressRequest

// IpamIpAddressesNotesListParams defines parameters for IpamIpAddressesNotesList.
type IpamIpAddressesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamPrefixesBulkDestroyJSONBody defines parameters for IpamPrefixesBulkDestroy.
type IpamPrefixesBulkDestroyJSONBody = []BulkOperationRequest

// IpamPrefixesListParams defines parameters for IpamPrefixesList.
type IpamPrefixesListParams struct {
	// Contains Prefixes which contain this prefix or IP
	Contains   *string             `form:"contains,omitempty" json:"contains,omitempty"`
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Family Family
	Family         *float32              `form:"family,omitempty" json:"family,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IsPool         *bool                 `form:"is_pool,omitempty" json:"is_pool,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`

	// MaskLength mask_length
	MaskLength *float32 `form:"mask_length,omitempty" json:"mask_length,omitempty"`

	// MaskLengthGte mask_length__gte
	MaskLengthGte *float32 `form:"mask_length__gte,omitempty" json:"mask_length__gte,omitempty"`

	// MaskLengthLte mask_length__lte
	MaskLengthLte *float32 `form:"mask_length__lte,omitempty" json:"mask_length__lte,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Prefix Prefix
	Prefix *string `form:"prefix,omitempty" json:"prefix,omitempty"`

	// PresentInVrf VRF (RD)
	PresentInVrf *string `form:"present_in_vrf,omitempty" json:"present_in_vrf,omitempty"`

	// PresentInVrfId VRF
	PresentInVrfId *openapi_types.UUID `form:"present_in_vrf_id,omitempty" json:"present_in_vrf_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *[]openapi_types.UUID `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// VlanId VLAN (ID)
	VlanId *[]openapi_types.UUID `form:"vlan_id,omitempty" json:"vlan_id,omitempty"`

	// VlanIdN VLAN (ID)
	VlanIdN *[]openapi_types.UUID `form:"vlan_id__n,omitempty" json:"vlan_id__n,omitempty"`

	// VlanVid VLAN number (1-4095)
	VlanVid *int `form:"vlan_vid,omitempty" json:"vlan_vid,omitempty"`

	// Vrf VRF (RD)
	Vrf *[]string `form:"vrf,omitempty" json:"vrf,omitempty"`

	// VrfN VRF (RD)
	VrfN *[]string `form:"vrf__n,omitempty" json:"vrf__n,omitempty"`

	// VrfId VRF
	VrfId *[]openapi_types.UUID `form:"vrf_id,omitempty" json:"vrf_id,omitempty"`

	// VrfIdN VRF
	VrfIdN *[]openapi_types.UUID `form:"vrf_id__n,omitempty" json:"vrf_id__n,omitempty"`

	// Within Within prefix
	Within *string `form:"within,omitempty" json:"within,omitempty"`

	// WithinInclude Within and including prefix
	WithinInclude *string `form:"within_include,omitempty" json:"within_include,omitempty"`
}

// IpamPrefixesBulkPartialUpdateJSONBody defines parameters for IpamPrefixesBulkPartialUpdate.
type IpamPrefixesBulkPartialUpdateJSONBody = []PatchedBulkWritablePrefixRequest

// IpamPrefixesBulkUpdateJSONBody defines parameters for IpamPrefixesBulkUpdate.
type IpamPrefixesBulkUpdateJSONBody = []BulkWritablePrefixRequest

// IpamPrefixesAvailableIpsListParams defines parameters for IpamPrefixesAvailableIpsList.
type IpamPrefixesAvailableIpsListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamPrefixesAvailableIpsCreateParams defines parameters for IpamPrefixesAvailableIpsCreate.
type IpamPrefixesAvailableIpsCreateParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamPrefixesAvailablePrefixesListParams defines parameters for IpamPrefixesAvailablePrefixesList.
type IpamPrefixesAvailablePrefixesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamPrefixesNotesListParams defines parameters for IpamPrefixesNotesList.
type IpamPrefixesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamRirsBulkDestroyJSONBody defines parameters for IpamRirsBulkDestroy.
type IpamRirsBulkDestroyJSONBody = []BulkOperationRequest

// IpamRirsListParams defines parameters for IpamRirsList.
type IpamRirsListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IsPrivate       *bool                 `form:"is_private,omitempty" json:"is_private,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// IpamRirsBulkPartialUpdateJSONBody defines parameters for IpamRirsBulkPartialUpdate.
type IpamRirsBulkPartialUpdateJSONBody = []PatchedBulkWritableRIRRequest

// IpamRirsBulkUpdateJSONBody defines parameters for IpamRirsBulkUpdate.
type IpamRirsBulkUpdateJSONBody = []BulkWritableRIRRequest

// IpamRirsNotesListParams defines parameters for IpamRirsNotesList.
type IpamRirsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamRolesBulkDestroyJSONBody defines parameters for IpamRolesBulkDestroy.
type IpamRolesBulkDestroyJSONBody = []BulkOperationRequest

// IpamRolesListParams defines parameters for IpamRolesList.
type IpamRolesListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// IpamRolesBulkPartialUpdateJSONBody defines parameters for IpamRolesBulkPartialUpdate.
type IpamRolesBulkPartialUpdateJSONBody = []PatchedBulkWritableRoleRequest

// IpamRolesBulkUpdateJSONBody defines parameters for IpamRolesBulkUpdate.
type IpamRolesBulkUpdateJSONBody = []BulkWritableRoleRequest

// IpamRolesNotesListParams defines parameters for IpamRolesNotesList.
type IpamRolesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamRouteTargetsBulkDestroyJSONBody defines parameters for IpamRouteTargetsBulkDestroy.
type IpamRouteTargetsBulkDestroyJSONBody = []BulkOperationRequest

// IpamRouteTargetsListParams defines parameters for IpamRouteTargetsList.
type IpamRouteTargetsListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// ExportingVrf Export VRF (RD)
	ExportingVrf *[]string `form:"exporting_vrf,omitempty" json:"exporting_vrf,omitempty"`

	// ExportingVrfN Export VRF (RD)
	ExportingVrfN *[]string `form:"exporting_vrf__n,omitempty" json:"exporting_vrf__n,omitempty"`

	// ExportingVrfId Exporting VRF
	ExportingVrfId *[]openapi_types.UUID `form:"exporting_vrf_id,omitempty" json:"exporting_vrf_id,omitempty"`

	// ExportingVrfIdN Exporting VRF
	ExportingVrfIdN *[]openapi_types.UUID `form:"exporting_vrf_id__n,omitempty" json:"exporting_vrf_id__n,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// ImportingVrf Import VRF (RD)
	ImportingVrf *[]string `form:"importing_vrf,omitempty" json:"importing_vrf,omitempty"`

	// ImportingVrfN Import VRF (RD)
	ImportingVrfN *[]string `form:"importing_vrf__n,omitempty" json:"importing_vrf__n,omitempty"`

	// ImportingVrfId Importing VRF
	ImportingVrfId *[]openapi_types.UUID `form:"importing_vrf_id,omitempty" json:"importing_vrf_id,omitempty"`

	// ImportingVrfIdN Importing VRF
	ImportingVrfIdN *[]openapi_types.UUID `form:"importing_vrf_id__n,omitempty" json:"importing_vrf_id__n,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q    *string   `form:"q,omitempty" json:"q,omitempty"`
	Tag  *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// IpamRouteTargetsBulkPartialUpdateJSONBody defines parameters for IpamRouteTargetsBulkPartialUpdate.
type IpamRouteTargetsBulkPartialUpdateJSONBody = []PatchedBulkWritableRouteTargetRequest

// IpamRouteTargetsBulkUpdateJSONBody defines parameters for IpamRouteTargetsBulkUpdate.
type IpamRouteTargetsBulkUpdateJSONBody = []BulkWritableRouteTargetRequest

// IpamRouteTargetsNotesListParams defines parameters for IpamRouteTargetsNotesList.
type IpamRouteTargetsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamServicesBulkDestroyJSONBody defines parameters for IpamServicesBulkDestroy.
type IpamServicesBulkDestroyJSONBody = []BulkOperationRequest

// IpamServicesListParams defines parameters for IpamServicesList.
type IpamServicesListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN      *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset    *int     `form:"offset,omitempty" json:"offset,omitempty"`
	Port      *float32 `form:"port,omitempty" json:"port,omitempty"`
	Protocol  *string  `form:"protocol,omitempty" json:"protocol,omitempty"`
	ProtocolN *string  `form:"protocol__n,omitempty" json:"protocol__n,omitempty"`

	// Q Search
	Q    *string   `form:"q,omitempty" json:"q,omitempty"`
	Tag  *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// VirtualMachine Virtual machine (name)
	VirtualMachine *[]string `form:"virtual_machine,omitempty" json:"virtual_machine,omitempty"`

	// VirtualMachineN Virtual machine (name)
	VirtualMachineN *[]string `form:"virtual_machine__n,omitempty" json:"virtual_machine__n,omitempty"`

	// VirtualMachineId Virtual machine (ID)
	VirtualMachineId *[]openapi_types.UUID `form:"virtual_machine_id,omitempty" json:"virtual_machine_id,omitempty"`

	// VirtualMachineIdN Virtual machine (ID)
	VirtualMachineIdN *[]openapi_types.UUID `form:"virtual_machine_id__n,omitempty" json:"virtual_machine_id__n,omitempty"`
}

// IpamServicesBulkPartialUpdateJSONBody defines parameters for IpamServicesBulkPartialUpdate.
type IpamServicesBulkPartialUpdateJSONBody = []PatchedBulkWritableServiceRequest

// IpamServicesBulkUpdateJSONBody defines parameters for IpamServicesBulkUpdate.
type IpamServicesBulkUpdateJSONBody = []BulkWritableServiceRequest

// IpamServicesNotesListParams defines parameters for IpamServicesNotesList.
type IpamServicesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamVlanGroupsBulkDestroyJSONBody defines parameters for IpamVlanGroupsBulkDestroy.
type IpamVlanGroupsBulkDestroyJSONBody = []BulkOperationRequest

// IpamVlanGroupsListParams defines parameters for IpamVlanGroupsList.
type IpamVlanGroupsListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN  *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Slug     *[]string             `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string             `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string             `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string             `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string             `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string             `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string             `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string             `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string             `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string             `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string             `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string             `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string             `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string             `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// IpamVlanGroupsBulkPartialUpdateJSONBody defines parameters for IpamVlanGroupsBulkPartialUpdate.
type IpamVlanGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableVLANGroupRequest

// IpamVlanGroupsBulkUpdateJSONBody defines parameters for IpamVlanGroupsBulkUpdate.
type IpamVlanGroupsBulkUpdateJSONBody = []BulkWritableVLANGroupRequest

// IpamVlanGroupsNotesListParams defines parameters for IpamVlanGroupsNotesList.
type IpamVlanGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamVlansBulkDestroyJSONBody defines parameters for IpamVlansBulkDestroy.
type IpamVlansBulkDestroyJSONBody = []BulkOperationRequest

// IpamVlansListParams defines parameters for IpamVlansList.
type IpamVlansListParams struct {
	// AvailableOnDevice Device (ID)
	AvailableOnDevice *openapi_types.UUID `form:"available_on_device,omitempty" json:"available_on_device,omitempty"`
	Created           *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte        *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte        *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Group Group
	Group *[]string `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Group
	GroupN *[]string `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Group (ID)
	GroupIdN       *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *[]openapi_types.UUID `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
	Vid       *[]int                `form:"vid,omitempty" json:"vid,omitempty"`
	VidGt     *[]int                `form:"vid__gt,omitempty" json:"vid__gt,omitempty"`
	VidGte    *[]int                `form:"vid__gte,omitempty" json:"vid__gte,omitempty"`
	VidLt     *[]int                `form:"vid__lt,omitempty" json:"vid__lt,omitempty"`
	VidLte    *[]int                `form:"vid__lte,omitempty" json:"vid__lte,omitempty"`
	VidN      *[]int                `form:"vid__n,omitempty" json:"vid__n,omitempty"`
}

// IpamVlansBulkPartialUpdateJSONBody defines parameters for IpamVlansBulkPartialUpdate.
type IpamVlansBulkPartialUpdateJSONBody = []PatchedBulkWritableVLANRequest

// IpamVlansBulkUpdateJSONBody defines parameters for IpamVlansBulkUpdate.
type IpamVlansBulkUpdateJSONBody = []BulkWritableVLANRequest

// IpamVlansNotesListParams defines parameters for IpamVlansNotesList.
type IpamVlansNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// IpamVrfsBulkDestroyJSONBody defines parameters for IpamVrfsBulkDestroy.
type IpamVrfsBulkDestroyJSONBody = []BulkOperationRequest

// IpamVrfsListParams defines parameters for IpamVrfsList.
type IpamVrfsListParams struct {
	Created       *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte    *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte    *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	EnforceUnique *bool               `form:"enforce_unique,omitempty" json:"enforce_unique,omitempty"`

	// ExportTarget Export target (name)
	ExportTarget *[]string `form:"export_target,omitempty" json:"export_target,omitempty"`

	// ExportTargetN Export target (name)
	ExportTargetN *[]string `form:"export_target__n,omitempty" json:"export_target__n,omitempty"`

	// ExportTargetId Export target
	ExportTargetId *[]openapi_types.UUID `form:"export_target_id,omitempty" json:"export_target_id,omitempty"`

	// ExportTargetIdN Export target
	ExportTargetIdN *[]openapi_types.UUID `form:"export_target_id__n,omitempty" json:"export_target_id__n,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// ImportTarget Import target (name)
	ImportTarget *[]string `form:"import_target,omitempty" json:"import_target,omitempty"`

	// ImportTargetN Import target (name)
	ImportTargetN *[]string `form:"import_target__n,omitempty" json:"import_target__n,omitempty"`

	// ImportTargetId Import target
	ImportTargetId *[]openapi_types.UUID `form:"import_target_id,omitempty" json:"import_target_id,omitempty"`

	// ImportTargetIdN Import target
	ImportTargetIdN *[]openapi_types.UUID `form:"import_target_id__n,omitempty" json:"import_target_id__n,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q      *string   `form:"q,omitempty" json:"q,omitempty"`
	Rd     *[]string `form:"rd,omitempty" json:"rd,omitempty"`
	RdIc   *[]string `form:"rd__ic,omitempty" json:"rd__ic,omitempty"`
	RdIe   *[]string `form:"rd__ie,omitempty" json:"rd__ie,omitempty"`
	RdIew  *[]string `form:"rd__iew,omitempty" json:"rd__iew,omitempty"`
	RdIre  *[]string `form:"rd__ire,omitempty" json:"rd__ire,omitempty"`
	RdIsw  *[]string `form:"rd__isw,omitempty" json:"rd__isw,omitempty"`
	RdN    *[]string `form:"rd__n,omitempty" json:"rd__n,omitempty"`
	RdNic  *[]string `form:"rd__nic,omitempty" json:"rd__nic,omitempty"`
	RdNie  *[]string `form:"rd__nie,omitempty" json:"rd__nie,omitempty"`
	RdNiew *[]string `form:"rd__niew,omitempty" json:"rd__niew,omitempty"`
	RdNire *[]string `form:"rd__nire,omitempty" json:"rd__nire,omitempty"`
	RdNisw *[]string `form:"rd__nisw,omitempty" json:"rd__nisw,omitempty"`
	RdNre  *[]string `form:"rd__nre,omitempty" json:"rd__nre,omitempty"`
	RdRe   *[]string `form:"rd__re,omitempty" json:"rd__re,omitempty"`
	Tag    *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN   *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`
}

// IpamVrfsBulkPartialUpdateJSONBody defines parameters for IpamVrfsBulkPartialUpdate.
type IpamVrfsBulkPartialUpdateJSONBody = []PatchedBulkWritableVRFRequest

// IpamVrfsBulkUpdateJSONBody defines parameters for IpamVrfsBulkUpdate.
type IpamVrfsBulkUpdateJSONBody = []BulkWritableVRFRequest

// IpamVrfsNotesListParams defines parameters for IpamVrfsNotesList.
type IpamVrfsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsBgpAddressFamiliesBulkDestroyJSONBody defines parameters for PluginsBgpAddressFamiliesBulkDestroy.
type PluginsBgpAddressFamiliesBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpAddressFamiliesListParams defines parameters for PluginsBgpAddressFamiliesList.
type PluginsBgpAddressFamiliesListParams struct {
	AfiSafi    *[]string             `form:"afi_safi,omitempty" json:"afi_safi,omitempty"`
	AfiSafiN   *[]string             `form:"afi_safi__n,omitempty" json:"afi_safi__n,omitempty"`
	Created    *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id         *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc       *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe       *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew      *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre      *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw      *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN        *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic      *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie      *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew     *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire     *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw     *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre      *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe       *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool      `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`
	LastUpdated      *time.Time `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte   *time.Time `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte   *time.Time `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// RoutingInstance BGP Routing Instance ID
	RoutingInstance *[]openapi_types.UUID `form:"routing_instance,omitempty" json:"routing_instance,omitempty"`

	// RoutingInstanceN BGP Routing Instance ID
	RoutingInstanceN *[]openapi_types.UUID `form:"routing_instance__n,omitempty" json:"routing_instance__n,omitempty"`

	// Vrf VRF (name)
	Vrf *[]string `form:"vrf,omitempty" json:"vrf,omitempty"`

	// VrfN VRF (name)
	VrfN *[]string `form:"vrf__n,omitempty" json:"vrf__n,omitempty"`
}

// PluginsBgpAddressFamiliesBulkPartialUpdateJSONBody defines parameters for PluginsBgpAddressFamiliesBulkPartialUpdate.
type PluginsBgpAddressFamiliesBulkPartialUpdateJSONBody = []PatchedBulkWritableAddressFamilyRequest

// PluginsBgpAddressFamiliesBulkUpdateJSONBody defines parameters for PluginsBgpAddressFamiliesBulkUpdate.
type PluginsBgpAddressFamiliesBulkUpdateJSONBody = []BulkWritableAddressFamilyRequest

// PluginsBgpAddressFamiliesRetrieveParams defines parameters for PluginsBgpAddressFamiliesRetrieve.
type PluginsBgpAddressFamiliesRetrieveParams struct {
	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`
}

// PluginsBgpAutonomousSystemsBulkDestroyJSONBody defines parameters for PluginsBgpAutonomousSystemsBulkDestroy.
type PluginsBgpAutonomousSystemsBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpAutonomousSystemsListParams defines parameters for PluginsBgpAutonomousSystemsList.
type PluginsBgpAutonomousSystemsListParams struct {
	Asn            *[]int                `form:"asn,omitempty" json:"asn,omitempty"`
	AsnGt          *[]int                `form:"asn__gt,omitempty" json:"asn__gt,omitempty"`
	AsnGte         *[]int                `form:"asn__gte,omitempty" json:"asn__gte,omitempty"`
	AsnLt          *[]int                `form:"asn__lt,omitempty" json:"asn__lt,omitempty"`
	AsnLte         *[]int                `form:"asn__lte,omitempty" json:"asn__lte,omitempty"`
	AsnN           *[]int                `form:"asn__n,omitempty" json:"asn__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string               `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsBgpAutonomousSystemsBulkPartialUpdateJSONBody defines parameters for PluginsBgpAutonomousSystemsBulkPartialUpdate.
type PluginsBgpAutonomousSystemsBulkPartialUpdateJSONBody = []PatchedBulkWritableAutonomousSystemRequest

// PluginsBgpAutonomousSystemsBulkUpdateJSONBody defines parameters for PluginsBgpAutonomousSystemsBulkUpdate.
type PluginsBgpAutonomousSystemsBulkUpdateJSONBody = []BulkWritableAutonomousSystemRequest

// PluginsBgpPeerEndpointsBulkDestroyJSONBody defines parameters for PluginsBgpPeerEndpointsBulkDestroy.
type PluginsBgpPeerEndpointsBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpPeerEndpointsListParams defines parameters for PluginsBgpPeerEndpointsList.
type PluginsBgpPeerEndpointsListParams struct {
	// AutonomousSystem Autonomous System Number
	AutonomousSystem *string `form:"autonomous_system,omitempty" json:"autonomous_system,omitempty"`

	// AutonomousSystemN Autonomous System Number
	AutonomousSystemN *string `form:"autonomous_system__n,omitempty" json:"autonomous_system__n,omitempty"`

	// Device Device (name)
	Device *string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// Enabled enabled
	Enabled *string `form:"enabled,omitempty" json:"enabled,omitempty"`

	// Id id
	Id *string `form:"id,omitempty" json:"id,omitempty"`

	// IdIc id__ic
	IdIc *string `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe id__ie
	IdIe *string `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew id__iew
	IdIew *string `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre id__ire
	IdIre *string `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw id__isw
	IdIsw *string `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN id__n
	IdN *string `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic id__nic
	IdNic *string `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie id__nie
	IdNie *string `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew id__niew
	IdNiew *string `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire id__nire
	IdNire *string `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw id__nisw
	IdNisw *string `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre id__nre
	IdNre *string `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe id__re
	IdRe *string `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// PeerGroup Peer Group (id)
	PeerGroup *string `form:"peer_group,omitempty" json:"peer_group,omitempty"`

	// PeerGroupN Peer Group (id)
	PeerGroupN *string `form:"peer_group__n,omitempty" json:"peer_group__n,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsBgpPeerEndpointsBulkPartialUpdateJSONBody defines parameters for PluginsBgpPeerEndpointsBulkPartialUpdate.
type PluginsBgpPeerEndpointsBulkPartialUpdateJSONBody = []PatchedBulkWritablePeerEndpointRequest

// PluginsBgpPeerEndpointsBulkUpdateJSONBody defines parameters for PluginsBgpPeerEndpointsBulkUpdate.
type PluginsBgpPeerEndpointsBulkUpdateJSONBody = []BulkWritablePeerEndpointRequest

// PluginsBgpPeerEndpointsRetrieveParams defines parameters for PluginsBgpPeerEndpointsRetrieve.
type PluginsBgpPeerEndpointsRetrieveParams struct {
	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`
}

// PluginsBgpPeerGroupTemplatesBulkDestroyJSONBody defines parameters for PluginsBgpPeerGroupTemplatesBulkDestroy.
type PluginsBgpPeerGroupTemplatesBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpPeerGroupTemplatesListParams defines parameters for PluginsBgpPeerGroupTemplatesList.
type PluginsBgpPeerGroupTemplatesListParams struct {
	// AutonomousSystem Autonomous System Number
	AutonomousSystem *[]int64 `form:"autonomous_system,omitempty" json:"autonomous_system,omitempty"`

	// AutonomousSystemN Autonomous System Number
	AutonomousSystemN *[]int64              `form:"autonomous_system__n,omitempty" json:"autonomous_system__n,omitempty"`
	Enabled           *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	Id                *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc              *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe              *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew             *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre             *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw             *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN               *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic             *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie             *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew            *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire            *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw            *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre             *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe              *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Role Peering role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Peering role (slug)
	RoleN *[]string `form:"role__n,omitempty" json:"role__n,omitempty"`
}

// PluginsBgpPeerGroupTemplatesBulkPartialUpdateJSONBody defines parameters for PluginsBgpPeerGroupTemplatesBulkPartialUpdate.
type PluginsBgpPeerGroupTemplatesBulkPartialUpdateJSONBody = []PatchedBulkWritablePeerGroupTemplateRequest

// PluginsBgpPeerGroupTemplatesBulkUpdateJSONBody defines parameters for PluginsBgpPeerGroupTemplatesBulkUpdate.
type PluginsBgpPeerGroupTemplatesBulkUpdateJSONBody = []BulkWritablePeerGroupTemplateRequest

// PluginsBgpPeerGroupTemplatesRetrieveParams defines parameters for PluginsBgpPeerGroupTemplatesRetrieve.
type PluginsBgpPeerGroupTemplatesRetrieveParams struct {
	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`
}

// PluginsBgpPeerGroupsBulkDestroyJSONBody defines parameters for PluginsBgpPeerGroupsBulkDestroy.
type PluginsBgpPeerGroupsBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpPeerGroupsListParams defines parameters for PluginsBgpPeerGroupsList.
type PluginsBgpPeerGroupsListParams struct {
	// AutonomousSystem Autonomous System Number
	AutonomousSystem *string `form:"autonomous_system,omitempty" json:"autonomous_system,omitempty"`

	// AutonomousSystemN Autonomous System Number
	AutonomousSystemN *string `form:"autonomous_system__n,omitempty" json:"autonomous_system__n,omitempty"`

	// Enabled enabled
	Enabled *string `form:"enabled,omitempty" json:"enabled,omitempty"`

	// Id id
	Id *string `form:"id,omitempty" json:"id,omitempty"`

	// IdIc id__ic
	IdIc *string `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe id__ie
	IdIe *string `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew id__iew
	IdIew *string `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre id__ire
	IdIre *string `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw id__isw
	IdIsw *string `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN id__n
	IdN *string `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic id__nic
	IdNic *string `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie id__nie
	IdNie *string `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew id__niew
	IdNiew *string `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire id__nire
	IdNire *string `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw id__nisw
	IdNisw *string `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre id__nre
	IdNre *string `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe id__re
	IdRe *string `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Name name
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc name__ic
	NameIc *string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe name__ie
	NameIe *string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew name__iew
	NameIew *string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre name__ire
	NameIre *string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw name__isw
	NameIsw *string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN name__n
	NameN *string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic name__nic
	NameNic *string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie name__nie
	NameNie *string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew name__niew
	NameNiew *string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire name__nire
	NameNire *string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw name__nisw
	NameNisw *string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre name__nre
	NameNre *string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe name__re
	NameRe *string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Role Peering role (slug)
	Role *string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Peering role (slug)
	RoleN *string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoutingInstance BGP Routing Instance ID
	RoutingInstance *string `form:"routing_instance,omitempty" json:"routing_instance,omitempty"`

	// RoutingInstanceN BGP Routing Instance ID
	RoutingInstanceN *string `form:"routing_instance__n,omitempty" json:"routing_instance__n,omitempty"`
}

// PluginsBgpPeerGroupsBulkPartialUpdateJSONBody defines parameters for PluginsBgpPeerGroupsBulkPartialUpdate.
type PluginsBgpPeerGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritablePeerGroupRequest

// PluginsBgpPeerGroupsBulkUpdateJSONBody defines parameters for PluginsBgpPeerGroupsBulkUpdate.
type PluginsBgpPeerGroupsBulkUpdateJSONBody = []BulkWritablePeerGroupRequest

// PluginsBgpPeerGroupsRetrieveParams defines parameters for PluginsBgpPeerGroupsRetrieve.
type PluginsBgpPeerGroupsRetrieveParams struct {
	// IncludeInherited Include inherited configuration values
	IncludeInherited *bool `form:"include_inherited,omitempty" json:"include_inherited,omitempty"`
}

// PluginsBgpPeeringRolesBulkDestroyJSONBody defines parameters for PluginsBgpPeeringRolesBulkDestroy.
type PluginsBgpPeeringRolesBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpPeeringRolesListParams defines parameters for PluginsBgpPeeringRolesList.
type PluginsBgpPeeringRolesListParams struct {
	Color           *[]string             `form:"color,omitempty" json:"color,omitempty"`
	ColorIc         *[]string             `form:"color__ic,omitempty" json:"color__ic,omitempty"`
	ColorIe         *[]string             `form:"color__ie,omitempty" json:"color__ie,omitempty"`
	ColorIew        *[]string             `form:"color__iew,omitempty" json:"color__iew,omitempty"`
	ColorIre        *[]string             `form:"color__ire,omitempty" json:"color__ire,omitempty"`
	ColorIsw        *[]string             `form:"color__isw,omitempty" json:"color__isw,omitempty"`
	ColorN          *[]string             `form:"color__n,omitempty" json:"color__n,omitempty"`
	ColorNic        *[]string             `form:"color__nic,omitempty" json:"color__nic,omitempty"`
	ColorNie        *[]string             `form:"color__nie,omitempty" json:"color__nie,omitempty"`
	ColorNiew       *[]string             `form:"color__niew,omitempty" json:"color__niew,omitempty"`
	ColorNire       *[]string             `form:"color__nire,omitempty" json:"color__nire,omitempty"`
	ColorNisw       *[]string             `form:"color__nisw,omitempty" json:"color__nisw,omitempty"`
	ColorNre        *[]string             `form:"color__nre,omitempty" json:"color__nre,omitempty"`
	ColorRe         *[]string             `form:"color__re,omitempty" json:"color__re,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// PluginsBgpPeeringRolesBulkPartialUpdateJSONBody defines parameters for PluginsBgpPeeringRolesBulkPartialUpdate.
type PluginsBgpPeeringRolesBulkPartialUpdateJSONBody = []PatchedBulkWritablePeeringRoleRequest

// PluginsBgpPeeringRolesBulkUpdateJSONBody defines parameters for PluginsBgpPeeringRolesBulkUpdate.
type PluginsBgpPeeringRolesBulkUpdateJSONBody = []BulkWritablePeeringRoleRequest

// PluginsBgpPeeringsBulkDestroyJSONBody defines parameters for PluginsBgpPeeringsBulkDestroy.
type PluginsBgpPeeringsBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpPeeringsListParams defines parameters for PluginsBgpPeeringsList.
type PluginsBgpPeeringsListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN        *[]string             `form:"device__n,omitempty" json:"device__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset  *int                  `form:"offset,omitempty" json:"offset,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsBgpPeeringsBulkPartialUpdateJSONBody defines parameters for PluginsBgpPeeringsBulkPartialUpdate.
type PluginsBgpPeeringsBulkPartialUpdateJSONBody = []PatchedBulkWritablePeeringRequest

// PluginsBgpPeeringsBulkUpdateJSONBody defines parameters for PluginsBgpPeeringsBulkUpdate.
type PluginsBgpPeeringsBulkUpdateJSONBody = []BulkWritablePeeringRequest

// PluginsBgpRoutingInstancesBulkDestroyJSONBody defines parameters for PluginsBgpRoutingInstancesBulkDestroy.
type PluginsBgpRoutingInstancesBulkDestroyJSONBody = []BulkOperationRequest

// PluginsBgpRoutingInstancesListParams defines parameters for PluginsBgpRoutingInstancesList.
type PluginsBgpRoutingInstancesListParams struct {
	// AutonomousSystem Autonomous System Number
	AutonomousSystem *[]int64 `form:"autonomous_system,omitempty" json:"autonomous_system,omitempty"`

	// AutonomousSystemN Autonomous System Number
	AutonomousSystemN *[]int64            `form:"autonomous_system__n,omitempty" json:"autonomous_system__n,omitempty"`
	Created           *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte        *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte        *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device (name)
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device (name)
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device (ID)
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device (ID)
	DeviceIdN      *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q      *string   `form:"q,omitempty" json:"q,omitempty"`
	Status *[]string `form:"status,omitempty" json:"status,omitempty"`
	Tag    *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN   *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsBgpRoutingInstancesBulkPartialUpdateJSONBody defines parameters for PluginsBgpRoutingInstancesBulkPartialUpdate.
type PluginsBgpRoutingInstancesBulkPartialUpdateJSONBody = []PatchedBulkWritableBGPRoutingInstanceRequest

// PluginsBgpRoutingInstancesBulkUpdateJSONBody defines parameters for PluginsBgpRoutingInstancesBulkUpdate.
type PluginsBgpRoutingInstancesBulkUpdateJSONBody = []BulkWritableBGPRoutingInstanceRequest

// PluginsChatopsAccessgrantBulkDestroyJSONBody defines parameters for PluginsChatopsAccessgrantBulkDestroy.
type PluginsChatopsAccessgrantBulkDestroyJSONBody = []BulkOperationRequest

// PluginsChatopsAccessgrantListParams defines parameters for PluginsChatopsAccessgrantList.
type PluginsChatopsAccessgrantListParams struct {
	Command     *[]string             `form:"command,omitempty" json:"command,omitempty"`
	CommandIc   *[]string             `form:"command__ic,omitempty" json:"command__ic,omitempty"`
	CommandIe   *[]string             `form:"command__ie,omitempty" json:"command__ie,omitempty"`
	CommandIew  *[]string             `form:"command__iew,omitempty" json:"command__iew,omitempty"`
	CommandIre  *[]string             `form:"command__ire,omitempty" json:"command__ire,omitempty"`
	CommandIsw  *[]string             `form:"command__isw,omitempty" json:"command__isw,omitempty"`
	CommandN    *[]string             `form:"command__n,omitempty" json:"command__n,omitempty"`
	CommandNic  *[]string             `form:"command__nic,omitempty" json:"command__nic,omitempty"`
	CommandNie  *[]string             `form:"command__nie,omitempty" json:"command__nie,omitempty"`
	CommandNiew *[]string             `form:"command__niew,omitempty" json:"command__niew,omitempty"`
	CommandNire *[]string             `form:"command__nire,omitempty" json:"command__nire,omitempty"`
	CommandNisw *[]string             `form:"command__nisw,omitempty" json:"command__nisw,omitempty"`
	CommandNre  *[]string             `form:"command__nre,omitempty" json:"command__nre,omitempty"`
	CommandRe   *[]string             `form:"command__re,omitempty" json:"command__re,omitempty"`
	GrantType   *string               `form:"grant_type,omitempty" json:"grant_type,omitempty"`
	GrantTypeN  *string               `form:"grant_type__n,omitempty" json:"grant_type__n,omitempty"`
	Id          *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc        *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe        *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew       *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre       *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw       *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN         *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic       *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie       *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew      *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire      *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw      *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre       *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe        *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset         *int      `form:"offset,omitempty" json:"offset,omitempty"`
	Subcommand     *[]string `form:"subcommand,omitempty" json:"subcommand,omitempty"`
	SubcommandIc   *[]string `form:"subcommand__ic,omitempty" json:"subcommand__ic,omitempty"`
	SubcommandIe   *[]string `form:"subcommand__ie,omitempty" json:"subcommand__ie,omitempty"`
	SubcommandIew  *[]string `form:"subcommand__iew,omitempty" json:"subcommand__iew,omitempty"`
	SubcommandIre  *[]string `form:"subcommand__ire,omitempty" json:"subcommand__ire,omitempty"`
	SubcommandIsw  *[]string `form:"subcommand__isw,omitempty" json:"subcommand__isw,omitempty"`
	SubcommandN    *[]string `form:"subcommand__n,omitempty" json:"subcommand__n,omitempty"`
	SubcommandNic  *[]string `form:"subcommand__nic,omitempty" json:"subcommand__nic,omitempty"`
	SubcommandNie  *[]string `form:"subcommand__nie,omitempty" json:"subcommand__nie,omitempty"`
	SubcommandNiew *[]string `form:"subcommand__niew,omitempty" json:"subcommand__niew,omitempty"`
	SubcommandNire *[]string `form:"subcommand__nire,omitempty" json:"subcommand__nire,omitempty"`
	SubcommandNisw *[]string `form:"subcommand__nisw,omitempty" json:"subcommand__nisw,omitempty"`
	SubcommandNre  *[]string `form:"subcommand__nre,omitempty" json:"subcommand__nre,omitempty"`
	SubcommandRe   *[]string `form:"subcommand__re,omitempty" json:"subcommand__re,omitempty"`
	Value          *[]string `form:"value,omitempty" json:"value,omitempty"`
	ValueIc        *[]string `form:"value__ic,omitempty" json:"value__ic,omitempty"`
	ValueIe        *[]string `form:"value__ie,omitempty" json:"value__ie,omitempty"`
	ValueIew       *[]string `form:"value__iew,omitempty" json:"value__iew,omitempty"`
	ValueIre       *[]string `form:"value__ire,omitempty" json:"value__ire,omitempty"`
	ValueIsw       *[]string `form:"value__isw,omitempty" json:"value__isw,omitempty"`
	ValueN         *[]string `form:"value__n,omitempty" json:"value__n,omitempty"`
	ValueNic       *[]string `form:"value__nic,omitempty" json:"value__nic,omitempty"`
	ValueNie       *[]string `form:"value__nie,omitempty" json:"value__nie,omitempty"`
	ValueNiew      *[]string `form:"value__niew,omitempty" json:"value__niew,omitempty"`
	ValueNire      *[]string `form:"value__nire,omitempty" json:"value__nire,omitempty"`
	ValueNisw      *[]string `form:"value__nisw,omitempty" json:"value__nisw,omitempty"`
	ValueNre       *[]string `form:"value__nre,omitempty" json:"value__nre,omitempty"`
	ValueRe        *[]string `form:"value__re,omitempty" json:"value__re,omitempty"`
}

// PluginsChatopsAccessgrantBulkPartialUpdateJSONBody defines parameters for PluginsChatopsAccessgrantBulkPartialUpdate.
type PluginsChatopsAccessgrantBulkPartialUpdateJSONBody = []PatchedBulkWritableAccessGrantRequest

// PluginsChatopsAccessgrantBulkUpdateJSONBody defines parameters for PluginsChatopsAccessgrantBulkUpdate.
type PluginsChatopsAccessgrantBulkUpdateJSONBody = []BulkWritableAccessGrantRequest

// PluginsChatopsCommandtokenBulkDestroyJSONBody defines parameters for PluginsChatopsCommandtokenBulkDestroy.
type PluginsChatopsCommandtokenBulkDestroyJSONBody = []BulkOperationRequest

// PluginsChatopsCommandtokenListParams defines parameters for PluginsChatopsCommandtokenList.
type PluginsChatopsCommandtokenListParams struct {
	Comment     *[]string             `form:"comment,omitempty" json:"comment,omitempty"`
	CommentIc   *[]string             `form:"comment__ic,omitempty" json:"comment__ic,omitempty"`
	CommentIe   *[]string             `form:"comment__ie,omitempty" json:"comment__ie,omitempty"`
	CommentIew  *[]string             `form:"comment__iew,omitempty" json:"comment__iew,omitempty"`
	CommentIre  *[]string             `form:"comment__ire,omitempty" json:"comment__ire,omitempty"`
	CommentIsw  *[]string             `form:"comment__isw,omitempty" json:"comment__isw,omitempty"`
	CommentN    *[]string             `form:"comment__n,omitempty" json:"comment__n,omitempty"`
	CommentNic  *[]string             `form:"comment__nic,omitempty" json:"comment__nic,omitempty"`
	CommentNie  *[]string             `form:"comment__nie,omitempty" json:"comment__nie,omitempty"`
	CommentNiew *[]string             `form:"comment__niew,omitempty" json:"comment__niew,omitempty"`
	CommentNire *[]string             `form:"comment__nire,omitempty" json:"comment__nire,omitempty"`
	CommentNisw *[]string             `form:"comment__nisw,omitempty" json:"comment__nisw,omitempty"`
	CommentNre  *[]string             `form:"comment__nre,omitempty" json:"comment__nre,omitempty"`
	CommentRe   *[]string             `form:"comment__re,omitempty" json:"comment__re,omitempty"`
	Id          *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc        *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe        *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew       *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre       *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw       *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN         *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic       *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie       *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew      *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire      *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw      *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre       *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe        *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset    *int    `form:"offset,omitempty" json:"offset,omitempty"`
	Platform  *string `form:"platform,omitempty" json:"platform,omitempty"`
	PlatformN *string `form:"platform__n,omitempty" json:"platform__n,omitempty"`
}

// PluginsChatopsCommandtokenBulkPartialUpdateJSONBody defines parameters for PluginsChatopsCommandtokenBulkPartialUpdate.
type PluginsChatopsCommandtokenBulkPartialUpdateJSONBody = []PatchedBulkWritableCommandTokenRequest

// PluginsChatopsCommandtokenBulkUpdateJSONBody defines parameters for PluginsChatopsCommandtokenBulkUpdate.
type PluginsChatopsCommandtokenBulkUpdateJSONBody = []BulkWritableCommandTokenRequest

// PluginsCircuitMaintenanceCircuitimpactBulkDestroyJSONBody defines parameters for PluginsCircuitMaintenanceCircuitimpactBulkDestroy.
type PluginsCircuitMaintenanceCircuitimpactBulkDestroyJSONBody = []BulkOperationRequest

// PluginsCircuitMaintenanceCircuitimpactListParams defines parameters for PluginsCircuitMaintenanceCircuitimpactList.
type PluginsCircuitMaintenanceCircuitimpactListParams struct {
	Circuit  *openapi_types.UUID   `form:"circuit,omitempty" json:"circuit,omitempty"`
	CircuitN *openapi_types.UUID   `form:"circuit__n,omitempty" json:"circuit__n,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Impact   *string               `form:"impact,omitempty" json:"impact,omitempty"`
	ImpactN  *string               `form:"impact__n,omitempty" json:"impact__n,omitempty"`

	// Limit Number of results to return per page.
	Limit        *int                `form:"limit,omitempty" json:"limit,omitempty"`
	Maintenance  *openapi_types.UUID `form:"maintenance,omitempty" json:"maintenance,omitempty"`
	MaintenanceN *openapi_types.UUID `form:"maintenance__n,omitempty" json:"maintenance__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdateJSONBody defines parameters for PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdate.
type PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdateJSONBody = []PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest

// PluginsCircuitMaintenanceCircuitimpactBulkUpdateJSONBody defines parameters for PluginsCircuitMaintenanceCircuitimpactBulkUpdate.
type PluginsCircuitMaintenanceCircuitimpactBulkUpdateJSONBody = []BulkWritableCircuitMaintenanceCircuitImpactRequest

// PluginsCircuitMaintenanceMaintenanceBulkDestroyJSONBody defines parameters for PluginsCircuitMaintenanceMaintenanceBulkDestroy.
type PluginsCircuitMaintenanceMaintenanceBulkDestroyJSONBody = []BulkOperationRequest

// PluginsCircuitMaintenanceMaintenanceListParams defines parameters for PluginsCircuitMaintenanceMaintenanceList.
type PluginsCircuitMaintenanceMaintenanceListParams struct {
	Ack *bool `form:"ack,omitempty" json:"ack,omitempty"`

	// Circuit Circuit
	Circuit *[]string             `form:"circuit,omitempty" json:"circuit,omitempty"`
	EndTime *time.Time            `form:"end_time,omitempty" json:"end_time,omitempty"`
	Id      *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc    *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe    *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew   *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre   *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw   *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN     *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic   *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie   *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew  *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire  *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw  *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre   *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe    *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Provider Provider (slug)
	Provider *[]string `form:"provider,omitempty" json:"provider,omitempty"`

	// Q Search
	Q         *string    `form:"q,omitempty" json:"q,omitempty"`
	StartTime *time.Time `form:"start_time,omitempty" json:"start_time,omitempty"`
	Status    *string    `form:"status,omitempty" json:"status,omitempty"`
	StatusN   *string    `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsCircuitMaintenanceMaintenanceBulkPartialUpdateJSONBody defines parameters for PluginsCircuitMaintenanceMaintenanceBulkPartialUpdate.
type PluginsCircuitMaintenanceMaintenanceBulkPartialUpdateJSONBody = []PatchedBulkWritableCircuitMaintenanceRequest

// PluginsCircuitMaintenanceMaintenanceBulkUpdateJSONBody defines parameters for PluginsCircuitMaintenanceMaintenanceBulkUpdate.
type PluginsCircuitMaintenanceMaintenanceBulkUpdateJSONBody = []BulkWritableCircuitMaintenanceRequest

// PluginsCircuitMaintenanceNoteBulkDestroyJSONBody defines parameters for PluginsCircuitMaintenanceNoteBulkDestroy.
type PluginsCircuitMaintenanceNoteBulkDestroyJSONBody = []BulkOperationRequest

// PluginsCircuitMaintenanceNoteListParams defines parameters for PluginsCircuitMaintenanceNoteList.
type PluginsCircuitMaintenanceNoteListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsCircuitMaintenanceNoteBulkPartialUpdateJSONBody defines parameters for PluginsCircuitMaintenanceNoteBulkPartialUpdate.
type PluginsCircuitMaintenanceNoteBulkPartialUpdateJSONBody = []PatchedBulkWritableNoteRequest

// PluginsCircuitMaintenanceNoteBulkUpdateJSONBody defines parameters for PluginsCircuitMaintenanceNoteBulkUpdate.
type PluginsCircuitMaintenanceNoteBulkUpdateJSONBody = []BulkWritableNoteRequest

// PluginsCircuitMaintenanceNotificationsourceListParams defines parameters for PluginsCircuitMaintenanceNotificationsourceList.
type PluginsCircuitMaintenanceNotificationsourceListParams struct {
	AttachAllProviders *bool                 `form:"attach_all_providers,omitempty" json:"attach_all_providers,omitempty"`
	Id                 *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc               *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe               *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew              *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre              *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw              *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic              *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie              *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew             *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire             *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw             *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre              *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe               *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// PluginsDataValidationEngineRulesMinMaxBulkDestroyJSONBody defines parameters for PluginsDataValidationEngineRulesMinMaxBulkDestroy.
type PluginsDataValidationEngineRulesMinMaxBulkDestroyJSONBody = []BulkOperationRequest

// PluginsDataValidationEngineRulesMinMaxListParams defines parameters for PluginsDataValidationEngineRulesMinMaxList.
type PluginsDataValidationEngineRulesMinMaxListParams struct {
	ContentType      *[]int                `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN     *[]int                `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	Created          *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte       *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte       *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Enabled          *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	ErrorMessage     *[]string             `form:"error_message,omitempty" json:"error_message,omitempty"`
	ErrorMessageIc   *[]string             `form:"error_message__ic,omitempty" json:"error_message__ic,omitempty"`
	ErrorMessageIe   *[]string             `form:"error_message__ie,omitempty" json:"error_message__ie,omitempty"`
	ErrorMessageIew  *[]string             `form:"error_message__iew,omitempty" json:"error_message__iew,omitempty"`
	ErrorMessageIre  *[]string             `form:"error_message__ire,omitempty" json:"error_message__ire,omitempty"`
	ErrorMessageIsw  *[]string             `form:"error_message__isw,omitempty" json:"error_message__isw,omitempty"`
	ErrorMessageN    *[]string             `form:"error_message__n,omitempty" json:"error_message__n,omitempty"`
	ErrorMessageNic  *[]string             `form:"error_message__nic,omitempty" json:"error_message__nic,omitempty"`
	ErrorMessageNie  *[]string             `form:"error_message__nie,omitempty" json:"error_message__nie,omitempty"`
	ErrorMessageNiew *[]string             `form:"error_message__niew,omitempty" json:"error_message__niew,omitempty"`
	ErrorMessageNire *[]string             `form:"error_message__nire,omitempty" json:"error_message__nire,omitempty"`
	ErrorMessageNisw *[]string             `form:"error_message__nisw,omitempty" json:"error_message__nisw,omitempty"`
	ErrorMessageNre  *[]string             `form:"error_message__nre,omitempty" json:"error_message__nre,omitempty"`
	ErrorMessageRe   *[]string             `form:"error_message__re,omitempty" json:"error_message__re,omitempty"`
	Field            *[]string             `form:"field,omitempty" json:"field,omitempty"`
	FieldIc          *[]string             `form:"field__ic,omitempty" json:"field__ic,omitempty"`
	FieldIe          *[]string             `form:"field__ie,omitempty" json:"field__ie,omitempty"`
	FieldIew         *[]string             `form:"field__iew,omitempty" json:"field__iew,omitempty"`
	FieldIre         *[]string             `form:"field__ire,omitempty" json:"field__ire,omitempty"`
	FieldIsw         *[]string             `form:"field__isw,omitempty" json:"field__isw,omitempty"`
	FieldN           *[]string             `form:"field__n,omitempty" json:"field__n,omitempty"`
	FieldNic         *[]string             `form:"field__nic,omitempty" json:"field__nic,omitempty"`
	FieldNie         *[]string             `form:"field__nie,omitempty" json:"field__nie,omitempty"`
	FieldNiew        *[]string             `form:"field__niew,omitempty" json:"field__niew,omitempty"`
	FieldNire        *[]string             `form:"field__nire,omitempty" json:"field__nire,omitempty"`
	FieldNisw        *[]string             `form:"field__nisw,omitempty" json:"field__nisw,omitempty"`
	FieldNre         *[]string             `form:"field__nre,omitempty" json:"field__nre,omitempty"`
	FieldRe          *[]string             `form:"field__re,omitempty" json:"field__re,omitempty"`
	Id               *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc             *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe             *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew            *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre            *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw            *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN              *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic            *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie            *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew           *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire           *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw           *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre            *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe             *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated      *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte   *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte   *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int       `form:"limit,omitempty" json:"limit,omitempty"`
	Max      *[]float32 `form:"max,omitempty" json:"max,omitempty"`
	MaxGt    *[]float32 `form:"max__gt,omitempty" json:"max__gt,omitempty"`
	MaxGte   *[]float32 `form:"max__gte,omitempty" json:"max__gte,omitempty"`
	MaxLt    *[]float32 `form:"max__lt,omitempty" json:"max__lt,omitempty"`
	MaxLte   *[]float32 `form:"max__lte,omitempty" json:"max__lte,omitempty"`
	MaxN     *[]float32 `form:"max__n,omitempty" json:"max__n,omitempty"`
	Min      *[]float32 `form:"min,omitempty" json:"min,omitempty"`
	MinGt    *[]float32 `form:"min__gt,omitempty" json:"min__gt,omitempty"`
	MinGte   *[]float32 `form:"min__gte,omitempty" json:"min__gte,omitempty"`
	MinLt    *[]float32 `form:"min__lt,omitempty" json:"min__lt,omitempty"`
	MinLte   *[]float32 `form:"min__lte,omitempty" json:"min__lte,omitempty"`
	MinN     *[]float32 `form:"min__n,omitempty" json:"min__n,omitempty"`
	Name     *[]string  `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string  `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string  `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string  `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string  `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string  `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string  `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string  `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string  `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string  `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string  `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string  `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string  `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string  `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// PluginsDataValidationEngineRulesMinMaxBulkPartialUpdateJSONBody defines parameters for PluginsDataValidationEngineRulesMinMaxBulkPartialUpdate.
type PluginsDataValidationEngineRulesMinMaxBulkPartialUpdateJSONBody = []PatchedBulkWritableMinMaxValidationRuleRequest

// PluginsDataValidationEngineRulesMinMaxBulkUpdateJSONBody defines parameters for PluginsDataValidationEngineRulesMinMaxBulkUpdate.
type PluginsDataValidationEngineRulesMinMaxBulkUpdateJSONBody = []BulkWritableMinMaxValidationRuleRequest

// PluginsDataValidationEngineRulesRegexBulkDestroyJSONBody defines parameters for PluginsDataValidationEngineRulesRegexBulkDestroy.
type PluginsDataValidationEngineRulesRegexBulkDestroyJSONBody = []BulkOperationRequest

// PluginsDataValidationEngineRulesRegexListParams defines parameters for PluginsDataValidationEngineRulesRegexList.
type PluginsDataValidationEngineRulesRegexListParams struct {
	ContentType      *[]int                `form:"content_type,omitempty" json:"content_type,omitempty"`
	ContentTypeN     *[]int                `form:"content_type__n,omitempty" json:"content_type__n,omitempty"`
	Created          *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte       *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte       *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Enabled          *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`
	ErrorMessage     *[]string             `form:"error_message,omitempty" json:"error_message,omitempty"`
	ErrorMessageIc   *[]string             `form:"error_message__ic,omitempty" json:"error_message__ic,omitempty"`
	ErrorMessageIe   *[]string             `form:"error_message__ie,omitempty" json:"error_message__ie,omitempty"`
	ErrorMessageIew  *[]string             `form:"error_message__iew,omitempty" json:"error_message__iew,omitempty"`
	ErrorMessageIre  *[]string             `form:"error_message__ire,omitempty" json:"error_message__ire,omitempty"`
	ErrorMessageIsw  *[]string             `form:"error_message__isw,omitempty" json:"error_message__isw,omitempty"`
	ErrorMessageN    *[]string             `form:"error_message__n,omitempty" json:"error_message__n,omitempty"`
	ErrorMessageNic  *[]string             `form:"error_message__nic,omitempty" json:"error_message__nic,omitempty"`
	ErrorMessageNie  *[]string             `form:"error_message__nie,omitempty" json:"error_message__nie,omitempty"`
	ErrorMessageNiew *[]string             `form:"error_message__niew,omitempty" json:"error_message__niew,omitempty"`
	ErrorMessageNire *[]string             `form:"error_message__nire,omitempty" json:"error_message__nire,omitempty"`
	ErrorMessageNisw *[]string             `form:"error_message__nisw,omitempty" json:"error_message__nisw,omitempty"`
	ErrorMessageNre  *[]string             `form:"error_message__nre,omitempty" json:"error_message__nre,omitempty"`
	ErrorMessageRe   *[]string             `form:"error_message__re,omitempty" json:"error_message__re,omitempty"`
	Field            *[]string             `form:"field,omitempty" json:"field,omitempty"`
	FieldIc          *[]string             `form:"field__ic,omitempty" json:"field__ic,omitempty"`
	FieldIe          *[]string             `form:"field__ie,omitempty" json:"field__ie,omitempty"`
	FieldIew         *[]string             `form:"field__iew,omitempty" json:"field__iew,omitempty"`
	FieldIre         *[]string             `form:"field__ire,omitempty" json:"field__ire,omitempty"`
	FieldIsw         *[]string             `form:"field__isw,omitempty" json:"field__isw,omitempty"`
	FieldN           *[]string             `form:"field__n,omitempty" json:"field__n,omitempty"`
	FieldNic         *[]string             `form:"field__nic,omitempty" json:"field__nic,omitempty"`
	FieldNie         *[]string             `form:"field__nie,omitempty" json:"field__nie,omitempty"`
	FieldNiew        *[]string             `form:"field__niew,omitempty" json:"field__niew,omitempty"`
	FieldNire        *[]string             `form:"field__nire,omitempty" json:"field__nire,omitempty"`
	FieldNisw        *[]string             `form:"field__nisw,omitempty" json:"field__nisw,omitempty"`
	FieldNre         *[]string             `form:"field__nre,omitempty" json:"field__nre,omitempty"`
	FieldRe          *[]string             `form:"field__re,omitempty" json:"field__re,omitempty"`
	Id               *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc             *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe             *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew            *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre            *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw            *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN              *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic            *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie            *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew           *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire           *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw           *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre            *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe             *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated      *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte   *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte   *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q                     *string   `form:"q,omitempty" json:"q,omitempty"`
	RegularExpression     *[]string `form:"regular_expression,omitempty" json:"regular_expression,omitempty"`
	RegularExpressionIc   *[]string `form:"regular_expression__ic,omitempty" json:"regular_expression__ic,omitempty"`
	RegularExpressionIe   *[]string `form:"regular_expression__ie,omitempty" json:"regular_expression__ie,omitempty"`
	RegularExpressionIew  *[]string `form:"regular_expression__iew,omitempty" json:"regular_expression__iew,omitempty"`
	RegularExpressionIre  *[]string `form:"regular_expression__ire,omitempty" json:"regular_expression__ire,omitempty"`
	RegularExpressionIsw  *[]string `form:"regular_expression__isw,omitempty" json:"regular_expression__isw,omitempty"`
	RegularExpressionN    *[]string `form:"regular_expression__n,omitempty" json:"regular_expression__n,omitempty"`
	RegularExpressionNic  *[]string `form:"regular_expression__nic,omitempty" json:"regular_expression__nic,omitempty"`
	RegularExpressionNie  *[]string `form:"regular_expression__nie,omitempty" json:"regular_expression__nie,omitempty"`
	RegularExpressionNiew *[]string `form:"regular_expression__niew,omitempty" json:"regular_expression__niew,omitempty"`
	RegularExpressionNire *[]string `form:"regular_expression__nire,omitempty" json:"regular_expression__nire,omitempty"`
	RegularExpressionNisw *[]string `form:"regular_expression__nisw,omitempty" json:"regular_expression__nisw,omitempty"`
	RegularExpressionNre  *[]string `form:"regular_expression__nre,omitempty" json:"regular_expression__nre,omitempty"`
	RegularExpressionRe   *[]string `form:"regular_expression__re,omitempty" json:"regular_expression__re,omitempty"`
	Slug                  *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc                *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe                *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew               *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre               *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw               *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN                 *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic               *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie               *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew              *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire              *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw              *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre               *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe                *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// PluginsDataValidationEngineRulesRegexBulkPartialUpdateJSONBody defines parameters for PluginsDataValidationEngineRulesRegexBulkPartialUpdate.
type PluginsDataValidationEngineRulesRegexBulkPartialUpdateJSONBody = []PatchedBulkWritableRegularExpressionValidationRuleRequest

// PluginsDataValidationEngineRulesRegexBulkUpdateJSONBody defines parameters for PluginsDataValidationEngineRulesRegexBulkUpdate.
type PluginsDataValidationEngineRulesRegexBulkUpdateJSONBody = []BulkWritableRegularExpressionValidationRuleRequest

// PluginsDeviceOnboardingOnboardingListParams defines parameters for PluginsDeviceOnboardingOnboardingList.
type PluginsDeviceOnboardingOnboardingListParams struct {
	// FailedReason Raison why the task failed (optional)
	FailedReason *string             `form:"failed_reason,omitempty" json:"failed_reason,omitempty"`
	Id           *openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Role Device Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// Site Site (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// Status Overall status of the task
	Status *string `form:"status,omitempty" json:"status,omitempty"`
}

// PluginsFirewallAddressObjectGroupBulkDestroyJSONBody defines parameters for PluginsFirewallAddressObjectGroupBulkDestroy.
type PluginsFirewallAddressObjectGroupBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallAddressObjectGroupListParams defines parameters for PluginsFirewallAddressObjectGroupList.
type PluginsFirewallAddressObjectGroupListParams struct {
	AddressObjects  *[]openapi_types.UUID `form:"address_objects,omitempty" json:"address_objects,omitempty"`
	AddressObjectsN *[]openapi_types.UUID `form:"address_objects__n,omitempty" json:"address_objects__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallAddressObjectGroupBulkPartialUpdateJSONBody defines parameters for PluginsFirewallAddressObjectGroupBulkPartialUpdate.
type PluginsFirewallAddressObjectGroupBulkPartialUpdateJSONBody = []PatchedBulkWritableAddressObjectGroupRequest

// PluginsFirewallAddressObjectGroupBulkUpdateJSONBody defines parameters for PluginsFirewallAddressObjectGroupBulkUpdate.
type PluginsFirewallAddressObjectGroupBulkUpdateJSONBody = []BulkWritableAddressObjectGroupRequest

// PluginsFirewallAddressObjectGroupNotesListParams defines parameters for PluginsFirewallAddressObjectGroupNotesList.
type PluginsFirewallAddressObjectGroupNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallAddressObjectBulkDestroyJSONBody defines parameters for PluginsFirewallAddressObjectBulkDestroy.
type PluginsFirewallAddressObjectBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallAddressObjectListParams defines parameters for PluginsFirewallAddressObjectList.
type PluginsFirewallAddressObjectListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Fqdn            *openapi_types.UUID   `form:"fqdn,omitempty" json:"fqdn,omitempty"`
	FqdnN           *openapi_types.UUID   `form:"fqdn__n,omitempty" json:"fqdn__n,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IpAddress       *openapi_types.UUID   `form:"ip_address,omitempty" json:"ip_address,omitempty"`
	IpAddressN      *openapi_types.UUID   `form:"ip_address__n,omitempty" json:"ip_address__n,omitempty"`
	IpRange         *openapi_types.UUID   `form:"ip_range,omitempty" json:"ip_range,omitempty"`
	IpRangeN        *openapi_types.UUID   `form:"ip_range__n,omitempty" json:"ip_range__n,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset  *int                `form:"offset,omitempty" json:"offset,omitempty"`
	Prefix  *openapi_types.UUID `form:"prefix,omitempty" json:"prefix,omitempty"`
	PrefixN *openapi_types.UUID `form:"prefix__n,omitempty" json:"prefix__n,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallAddressObjectBulkPartialUpdateJSONBody defines parameters for PluginsFirewallAddressObjectBulkPartialUpdate.
type PluginsFirewallAddressObjectBulkPartialUpdateJSONBody = []PatchedBulkWritableAddressObjectRequest

// PluginsFirewallAddressObjectBulkUpdateJSONBody defines parameters for PluginsFirewallAddressObjectBulkUpdate.
type PluginsFirewallAddressObjectBulkUpdateJSONBody = []BulkWritableAddressObjectRequest

// PluginsFirewallAddressObjectNotesListParams defines parameters for PluginsFirewallAddressObjectNotesList.
type PluginsFirewallAddressObjectNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallCapircaPolicyBulkDestroyJSONBody defines parameters for PluginsFirewallCapircaPolicyBulkDestroy.
type PluginsFirewallCapircaPolicyBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallCapircaPolicyListParams defines parameters for PluginsFirewallCapircaPolicyList.
type PluginsFirewallCapircaPolicyListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Device Device Name
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceN Device Name
	DeviceN *[]string `form:"device__n,omitempty" json:"device__n,omitempty"`

	// DeviceId Device ID
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceIdN Device ID
	DeviceIdN      *[]openapi_types.UUID `form:"device_id__n,omitempty" json:"device_id__n,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallCapircaPolicyBulkPartialUpdateJSONBody defines parameters for PluginsFirewallCapircaPolicyBulkPartialUpdate.
type PluginsFirewallCapircaPolicyBulkPartialUpdateJSONBody = []PatchedBulkWritableCapircaPolicyRequest

// PluginsFirewallCapircaPolicyBulkUpdateJSONBody defines parameters for PluginsFirewallCapircaPolicyBulkUpdate.
type PluginsFirewallCapircaPolicyBulkUpdateJSONBody = []BulkWritableCapircaPolicyRequest

// PluginsFirewallFqdnBulkDestroyJSONBody defines parameters for PluginsFirewallFqdnBulkDestroy.
type PluginsFirewallFqdnBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallFqdnListParams defines parameters for PluginsFirewallFqdnList.
type PluginsFirewallFqdnListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallFqdnBulkPartialUpdateJSONBody defines parameters for PluginsFirewallFqdnBulkPartialUpdate.
type PluginsFirewallFqdnBulkPartialUpdateJSONBody = []PatchedBulkWritableFQDNRequest

// PluginsFirewallFqdnBulkUpdateJSONBody defines parameters for PluginsFirewallFqdnBulkUpdate.
type PluginsFirewallFqdnBulkUpdateJSONBody = []BulkWritableFQDNRequest

// PluginsFirewallFqdnNotesListParams defines parameters for PluginsFirewallFqdnNotesList.
type PluginsFirewallFqdnNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallIpRangeBulkDestroyJSONBody defines parameters for PluginsFirewallIpRangeBulkDestroy.
type PluginsFirewallIpRangeBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallIpRangeListParams defines parameters for PluginsFirewallIpRangeList.
type PluginsFirewallIpRangeListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string             `form:"q,omitempty" json:"q,omitempty"`
	Size    *[]int              `form:"size,omitempty" json:"size,omitempty"`
	SizeGt  *[]int              `form:"size__gt,omitempty" json:"size__gt,omitempty"`
	SizeGte *[]int              `form:"size__gte,omitempty" json:"size__gte,omitempty"`
	SizeLt  *[]int              `form:"size__lt,omitempty" json:"size__lt,omitempty"`
	SizeLte *[]int              `form:"size__lte,omitempty" json:"size__lte,omitempty"`
	SizeN   *[]int              `form:"size__n,omitempty" json:"size__n,omitempty"`
	Status  *[]string           `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string           `form:"status__n,omitempty" json:"status__n,omitempty"`
	Vrf     *openapi_types.UUID `form:"vrf,omitempty" json:"vrf,omitempty"`
	VrfN    *openapi_types.UUID `form:"vrf__n,omitempty" json:"vrf__n,omitempty"`
}

// PluginsFirewallIpRangeBulkPartialUpdateJSONBody defines parameters for PluginsFirewallIpRangeBulkPartialUpdate.
type PluginsFirewallIpRangeBulkPartialUpdateJSONBody = []PatchedBulkWritableIPRangeRequest

// PluginsFirewallIpRangeBulkUpdateJSONBody defines parameters for PluginsFirewallIpRangeBulkUpdate.
type PluginsFirewallIpRangeBulkUpdateJSONBody = []BulkWritableIPRangeRequest

// PluginsFirewallIpRangeNotesListParams defines parameters for PluginsFirewallIpRangeNotesList.
type PluginsFirewallIpRangeNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallNatPolicyRuleBulkDestroyJSONBody defines parameters for PluginsFirewallNatPolicyRuleBulkDestroy.
type PluginsFirewallNatPolicyRuleBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallNatPolicyRuleListParams defines parameters for PluginsFirewallNatPolicyRuleList.
type PluginsFirewallNatPolicyRuleListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int  `form:"limit,omitempty" json:"limit,omitempty"`
	Log   *bool `form:"log,omitempty" json:"log,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q             *string   `form:"q,omitempty" json:"q,omitempty"`
	Remark        *bool     `form:"remark,omitempty" json:"remark,omitempty"`
	RequestId     *[]string `form:"request_id,omitempty" json:"request_id,omitempty"`
	RequestIdIc   *[]string `form:"request_id__ic,omitempty" json:"request_id__ic,omitempty"`
	RequestIdIe   *[]string `form:"request_id__ie,omitempty" json:"request_id__ie,omitempty"`
	RequestIdIew  *[]string `form:"request_id__iew,omitempty" json:"request_id__iew,omitempty"`
	RequestIdIre  *[]string `form:"request_id__ire,omitempty" json:"request_id__ire,omitempty"`
	RequestIdIsw  *[]string `form:"request_id__isw,omitempty" json:"request_id__isw,omitempty"`
	RequestIdN    *[]string `form:"request_id__n,omitempty" json:"request_id__n,omitempty"`
	RequestIdNic  *[]string `form:"request_id__nic,omitempty" json:"request_id__nic,omitempty"`
	RequestIdNie  *[]string `form:"request_id__nie,omitempty" json:"request_id__nie,omitempty"`
	RequestIdNiew *[]string `form:"request_id__niew,omitempty" json:"request_id__niew,omitempty"`
	RequestIdNire *[]string `form:"request_id__nire,omitempty" json:"request_id__nire,omitempty"`
	RequestIdNisw *[]string `form:"request_id__nisw,omitempty" json:"request_id__nisw,omitempty"`
	RequestIdNre  *[]string `form:"request_id__nre,omitempty" json:"request_id__nre,omitempty"`
	RequestIdRe   *[]string `form:"request_id__re,omitempty" json:"request_id__re,omitempty"`
	Status        *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN       *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag           *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN          *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsFirewallNatPolicyRuleBulkPartialUpdateJSONBody defines parameters for PluginsFirewallNatPolicyRuleBulkPartialUpdate.
type PluginsFirewallNatPolicyRuleBulkPartialUpdateJSONBody = []PatchedBulkWritableNATPolicyRuleRequest

// PluginsFirewallNatPolicyRuleBulkUpdateJSONBody defines parameters for PluginsFirewallNatPolicyRuleBulkUpdate.
type PluginsFirewallNatPolicyRuleBulkUpdateJSONBody = []BulkWritableNATPolicyRuleRequest

// PluginsFirewallNatPolicyRuleNotesListParams defines parameters for PluginsFirewallNatPolicyRuleNotesList.
type PluginsFirewallNatPolicyRuleNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallNatPolicyBulkDestroyJSONBody defines parameters for PluginsFirewallNatPolicyBulkDestroy.
type PluginsFirewallNatPolicyBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallNatPolicyListParams defines parameters for PluginsFirewallNatPolicyList.
type PluginsFirewallNatPolicyListParams struct {
	AssignedDevices        *[]openapi_types.UUID `form:"assigned_devices,omitempty" json:"assigned_devices,omitempty"`
	AssignedDevicesN       *[]openapi_types.UUID `form:"assigned_devices__n,omitempty" json:"assigned_devices__n,omitempty"`
	AssignedDynamicGroups  *[]openapi_types.UUID `form:"assigned_dynamic_groups,omitempty" json:"assigned_dynamic_groups,omitempty"`
	AssignedDynamicGroupsN *[]openapi_types.UUID `form:"assigned_dynamic_groups__n,omitempty" json:"assigned_dynamic_groups__n,omitempty"`
	Created                *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte             *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte             *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description            *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc          *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe          *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew         *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre         *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw         *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN           *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic         *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie         *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew        *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire        *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw        *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre         *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe          *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id                     *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                   *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                   *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                  *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                  *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                  *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                    *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                  *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                  *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                 *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                 *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                 *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                  *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                   *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated            *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte         *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte         *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit           *int                  `form:"limit,omitempty" json:"limit,omitempty"`
	Name            *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc          *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe          *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew         *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre         *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw         *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN           *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic         *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie         *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew        *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire        *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw        *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre         *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe          *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`
	NatPolicyRules  *[]openapi_types.UUID `form:"nat_policy_rules,omitempty" json:"nat_policy_rules,omitempty"`
	NatPolicyRulesN *[]openapi_types.UUID `form:"nat_policy_rules__n,omitempty" json:"nat_policy_rules__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallNatPolicyBulkPartialUpdateJSONBody defines parameters for PluginsFirewallNatPolicyBulkPartialUpdate.
type PluginsFirewallNatPolicyBulkPartialUpdateJSONBody = []PatchedBulkWritableNATPolicyRequest

// PluginsFirewallNatPolicyBulkUpdateJSONBody defines parameters for PluginsFirewallNatPolicyBulkUpdate.
type PluginsFirewallNatPolicyBulkUpdateJSONBody = []BulkWritableNATPolicyRequest

// PluginsFirewallNatPolicyNotesListParams defines parameters for PluginsFirewallNatPolicyNotesList.
type PluginsFirewallNatPolicyNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallPolicyRuleBulkDestroyJSONBody defines parameters for PluginsFirewallPolicyRuleBulkDestroy.
type PluginsFirewallPolicyRuleBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallPolicyRuleListParams defines parameters for PluginsFirewallPolicyRuleList.
type PluginsFirewallPolicyRuleListParams struct {
	Action         *PluginsFirewallPolicyRuleListParamsAction  `form:"action,omitempty" json:"action,omitempty"`
	ActionN        *PluginsFirewallPolicyRuleListParamsActionN `form:"action__n,omitempty" json:"action__n,omitempty"`
	Created        *openapi_types.Date                         `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date                         `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date                         `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID                       `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID                       `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID                       `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID                       `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID                       `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID                       `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID                       `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID                       `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID                       `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID                       `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID                       `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID                       `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID                       `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID                       `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time                                  `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time                                  `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time                                  `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int  `form:"limit,omitempty" json:"limit,omitempty"`
	Log   *bool `form:"log,omitempty" json:"log,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q             *string   `form:"q,omitempty" json:"q,omitempty"`
	RequestId     *[]string `form:"request_id,omitempty" json:"request_id,omitempty"`
	RequestIdIc   *[]string `form:"request_id__ic,omitempty" json:"request_id__ic,omitempty"`
	RequestIdIe   *[]string `form:"request_id__ie,omitempty" json:"request_id__ie,omitempty"`
	RequestIdIew  *[]string `form:"request_id__iew,omitempty" json:"request_id__iew,omitempty"`
	RequestIdIre  *[]string `form:"request_id__ire,omitempty" json:"request_id__ire,omitempty"`
	RequestIdIsw  *[]string `form:"request_id__isw,omitempty" json:"request_id__isw,omitempty"`
	RequestIdN    *[]string `form:"request_id__n,omitempty" json:"request_id__n,omitempty"`
	RequestIdNic  *[]string `form:"request_id__nic,omitempty" json:"request_id__nic,omitempty"`
	RequestIdNie  *[]string `form:"request_id__nie,omitempty" json:"request_id__nie,omitempty"`
	RequestIdNiew *[]string `form:"request_id__niew,omitempty" json:"request_id__niew,omitempty"`
	RequestIdNire *[]string `form:"request_id__nire,omitempty" json:"request_id__nire,omitempty"`
	RequestIdNisw *[]string `form:"request_id__nisw,omitempty" json:"request_id__nisw,omitempty"`
	RequestIdNre  *[]string `form:"request_id__nre,omitempty" json:"request_id__nre,omitempty"`
	RequestIdRe   *[]string `form:"request_id__re,omitempty" json:"request_id__re,omitempty"`
	Status        *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN       *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag           *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN          *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsFirewallPolicyRuleListParamsAction defines parameters for PluginsFirewallPolicyRuleList.
type PluginsFirewallPolicyRuleListParamsAction string

// PluginsFirewallPolicyRuleListParamsActionN defines parameters for PluginsFirewallPolicyRuleList.
type PluginsFirewallPolicyRuleListParamsActionN string

// PluginsFirewallPolicyRuleBulkPartialUpdateJSONBody defines parameters for PluginsFirewallPolicyRuleBulkPartialUpdate.
type PluginsFirewallPolicyRuleBulkPartialUpdateJSONBody = []PatchedBulkWritablePolicyRuleRequest

// PluginsFirewallPolicyRuleBulkUpdateJSONBody defines parameters for PluginsFirewallPolicyRuleBulkUpdate.
type PluginsFirewallPolicyRuleBulkUpdateJSONBody = []BulkWritablePolicyRuleRequest

// PluginsFirewallPolicyRuleNotesListParams defines parameters for PluginsFirewallPolicyRuleNotesList.
type PluginsFirewallPolicyRuleNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallPolicyBulkDestroyJSONBody defines parameters for PluginsFirewallPolicyBulkDestroy.
type PluginsFirewallPolicyBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallPolicyListParams defines parameters for PluginsFirewallPolicyList.
type PluginsFirewallPolicyListParams struct {
	AssignedDevices        *[]openapi_types.UUID `form:"assigned_devices,omitempty" json:"assigned_devices,omitempty"`
	AssignedDevicesN       *[]openapi_types.UUID `form:"assigned_devices__n,omitempty" json:"assigned_devices__n,omitempty"`
	AssignedDynamicGroups  *[]openapi_types.UUID `form:"assigned_dynamic_groups,omitempty" json:"assigned_dynamic_groups,omitempty"`
	AssignedDynamicGroupsN *[]openapi_types.UUID `form:"assigned_dynamic_groups__n,omitempty" json:"assigned_dynamic_groups__n,omitempty"`
	Created                *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte             *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte             *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description            *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc          *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe          *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew         *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre         *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw         *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN           *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic         *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie         *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew        *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire        *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw        *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre         *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe          *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id                     *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                   *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                   *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                  *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                  *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                  *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                    *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                  *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                  *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                 *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                 *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                 *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                  *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                   *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated            *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte         *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte         *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset       *int                  `form:"offset,omitempty" json:"offset,omitempty"`
	PolicyRules  *[]openapi_types.UUID `form:"policy_rules,omitempty" json:"policy_rules,omitempty"`
	PolicyRulesN *[]openapi_types.UUID `form:"policy_rules__n,omitempty" json:"policy_rules__n,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallPolicyBulkPartialUpdateJSONBody defines parameters for PluginsFirewallPolicyBulkPartialUpdate.
type PluginsFirewallPolicyBulkPartialUpdateJSONBody = []PatchedBulkWritablePolicyRequest

// PluginsFirewallPolicyBulkUpdateJSONBody defines parameters for PluginsFirewallPolicyBulkUpdate.
type PluginsFirewallPolicyBulkUpdateJSONBody = []BulkWritablePolicyRequest

// PluginsFirewallPolicyNotesListParams defines parameters for PluginsFirewallPolicyNotesList.
type PluginsFirewallPolicyNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallServiceObjectGroupBulkDestroyJSONBody defines parameters for PluginsFirewallServiceObjectGroupBulkDestroy.
type PluginsFirewallServiceObjectGroupBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallServiceObjectGroupListParams defines parameters for PluginsFirewallServiceObjectGroupList.
type PluginsFirewallServiceObjectGroupListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q               *string               `form:"q,omitempty" json:"q,omitempty"`
	ServiceObjects  *[]openapi_types.UUID `form:"service_objects,omitempty" json:"service_objects,omitempty"`
	ServiceObjectsN *[]openapi_types.UUID `form:"service_objects__n,omitempty" json:"service_objects__n,omitempty"`
	Status          *[]string             `form:"status,omitempty" json:"status,omitempty"`
	StatusN         *[]string             `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallServiceObjectGroupBulkPartialUpdateJSONBody defines parameters for PluginsFirewallServiceObjectGroupBulkPartialUpdate.
type PluginsFirewallServiceObjectGroupBulkPartialUpdateJSONBody = []PatchedBulkWritableServiceObjectGroupRequest

// PluginsFirewallServiceObjectGroupBulkUpdateJSONBody defines parameters for PluginsFirewallServiceObjectGroupBulkUpdate.
type PluginsFirewallServiceObjectGroupBulkUpdateJSONBody = []BulkWritableServiceObjectGroupRequest

// PluginsFirewallServiceObjectGroupNotesListParams defines parameters for PluginsFirewallServiceObjectGroupNotesList.
type PluginsFirewallServiceObjectGroupNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallServiceObjectBulkDestroyJSONBody defines parameters for PluginsFirewallServiceObjectBulkDestroy.
type PluginsFirewallServiceObjectBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallServiceObjectListParams defines parameters for PluginsFirewallServiceObjectList.
type PluginsFirewallServiceObjectListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IpProtocol IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocol *PluginsFirewallServiceObjectListParamsIpProtocol `form:"ip_protocol,omitempty" json:"ip_protocol,omitempty"`

	// IpProtocolN IANA IP Protocol (e.g. TCP UDP ICMP)
	IpProtocolN    *PluginsFirewallServiceObjectListParamsIpProtocolN `form:"ip_protocol__n,omitempty" json:"ip_protocol__n,omitempty"`
	LastUpdated    *time.Time                                         `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time                                         `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time                                         `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset   *int      `form:"offset,omitempty" json:"offset,omitempty"`
	Port     *[]string `form:"port,omitempty" json:"port,omitempty"`
	PortIc   *[]string `form:"port__ic,omitempty" json:"port__ic,omitempty"`
	PortIe   *[]string `form:"port__ie,omitempty" json:"port__ie,omitempty"`
	PortIew  *[]string `form:"port__iew,omitempty" json:"port__iew,omitempty"`
	PortIre  *[]string `form:"port__ire,omitempty" json:"port__ire,omitempty"`
	PortIsw  *[]string `form:"port__isw,omitempty" json:"port__isw,omitempty"`
	PortN    *[]string `form:"port__n,omitempty" json:"port__n,omitempty"`
	PortNic  *[]string `form:"port__nic,omitempty" json:"port__nic,omitempty"`
	PortNie  *[]string `form:"port__nie,omitempty" json:"port__nie,omitempty"`
	PortNiew *[]string `form:"port__niew,omitempty" json:"port__niew,omitempty"`
	PortNire *[]string `form:"port__nire,omitempty" json:"port__nire,omitempty"`
	PortNisw *[]string `form:"port__nisw,omitempty" json:"port__nisw,omitempty"`
	PortNre  *[]string `form:"port__nre,omitempty" json:"port__nre,omitempty"`
	PortRe   *[]string `form:"port__re,omitempty" json:"port__re,omitempty"`

	// Q Search
	Q       *string   `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
}

// PluginsFirewallServiceObjectListParamsIpProtocol defines parameters for PluginsFirewallServiceObjectList.
type PluginsFirewallServiceObjectListParamsIpProtocol string

// PluginsFirewallServiceObjectListParamsIpProtocolN defines parameters for PluginsFirewallServiceObjectList.
type PluginsFirewallServiceObjectListParamsIpProtocolN string

// PluginsFirewallServiceObjectBulkPartialUpdateJSONBody defines parameters for PluginsFirewallServiceObjectBulkPartialUpdate.
type PluginsFirewallServiceObjectBulkPartialUpdateJSONBody = []PatchedBulkWritableServiceObjectRequest

// PluginsFirewallServiceObjectBulkUpdateJSONBody defines parameters for PluginsFirewallServiceObjectBulkUpdate.
type PluginsFirewallServiceObjectBulkUpdateJSONBody = []BulkWritableServiceObjectRequest

// PluginsFirewallServiceObjectNotesListParams defines parameters for PluginsFirewallServiceObjectNotesList.
type PluginsFirewallServiceObjectNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallUserObjectGroupBulkDestroyJSONBody defines parameters for PluginsFirewallUserObjectGroupBulkDestroy.
type PluginsFirewallUserObjectGroupBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallUserObjectGroupListParams defines parameters for PluginsFirewallUserObjectGroupList.
type PluginsFirewallUserObjectGroupListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q            *string               `form:"q,omitempty" json:"q,omitempty"`
	Status       *[]string             `form:"status,omitempty" json:"status,omitempty"`
	StatusN      *[]string             `form:"status__n,omitempty" json:"status__n,omitempty"`
	UserObjects  *[]openapi_types.UUID `form:"user_objects,omitempty" json:"user_objects,omitempty"`
	UserObjectsN *[]openapi_types.UUID `form:"user_objects__n,omitempty" json:"user_objects__n,omitempty"`
}

// PluginsFirewallUserObjectGroupBulkPartialUpdateJSONBody defines parameters for PluginsFirewallUserObjectGroupBulkPartialUpdate.
type PluginsFirewallUserObjectGroupBulkPartialUpdateJSONBody = []PatchedBulkWritableUserObjectGroupRequest

// PluginsFirewallUserObjectGroupBulkUpdateJSONBody defines parameters for PluginsFirewallUserObjectGroupBulkUpdate.
type PluginsFirewallUserObjectGroupBulkUpdateJSONBody = []BulkWritableUserObjectGroupRequest

// PluginsFirewallUserObjectGroupNotesListParams defines parameters for PluginsFirewallUserObjectGroupNotesList.
type PluginsFirewallUserObjectGroupNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallUserObjectBulkDestroyJSONBody defines parameters for PluginsFirewallUserObjectBulkDestroy.
type PluginsFirewallUserObjectBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallUserObjectListParams defines parameters for PluginsFirewallUserObjectList.
type PluginsFirewallUserObjectListParams struct {
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q            *string   `form:"q,omitempty" json:"q,omitempty"`
	Status       *[]string `form:"status,omitempty" json:"status,omitempty"`
	StatusN      *[]string `form:"status__n,omitempty" json:"status__n,omitempty"`
	Username     *[]string `form:"username,omitempty" json:"username,omitempty"`
	UsernameIc   *[]string `form:"username__ic,omitempty" json:"username__ic,omitempty"`
	UsernameIe   *[]string `form:"username__ie,omitempty" json:"username__ie,omitempty"`
	UsernameIew  *[]string `form:"username__iew,omitempty" json:"username__iew,omitempty"`
	UsernameIre  *[]string `form:"username__ire,omitempty" json:"username__ire,omitempty"`
	UsernameIsw  *[]string `form:"username__isw,omitempty" json:"username__isw,omitempty"`
	UsernameN    *[]string `form:"username__n,omitempty" json:"username__n,omitempty"`
	UsernameNic  *[]string `form:"username__nic,omitempty" json:"username__nic,omitempty"`
	UsernameNie  *[]string `form:"username__nie,omitempty" json:"username__nie,omitempty"`
	UsernameNiew *[]string `form:"username__niew,omitempty" json:"username__niew,omitempty"`
	UsernameNire *[]string `form:"username__nire,omitempty" json:"username__nire,omitempty"`
	UsernameNisw *[]string `form:"username__nisw,omitempty" json:"username__nisw,omitempty"`
	UsernameNre  *[]string `form:"username__nre,omitempty" json:"username__nre,omitempty"`
	UsernameRe   *[]string `form:"username__re,omitempty" json:"username__re,omitempty"`
}

// PluginsFirewallUserObjectBulkPartialUpdateJSONBody defines parameters for PluginsFirewallUserObjectBulkPartialUpdate.
type PluginsFirewallUserObjectBulkPartialUpdateJSONBody = []PatchedBulkWritableUserObjectRequest

// PluginsFirewallUserObjectBulkUpdateJSONBody defines parameters for PluginsFirewallUserObjectBulkUpdate.
type PluginsFirewallUserObjectBulkUpdateJSONBody = []BulkWritableUserObjectRequest

// PluginsFirewallUserObjectNotesListParams defines parameters for PluginsFirewallUserObjectNotesList.
type PluginsFirewallUserObjectNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsFirewallZoneBulkDestroyJSONBody defines parameters for PluginsFirewallZoneBulkDestroy.
type PluginsFirewallZoneBulkDestroyJSONBody = []BulkOperationRequest

// PluginsFirewallZoneListParams defines parameters for PluginsFirewallZoneList.
type PluginsFirewallZoneListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Interfaces      *[]openapi_types.UUID `form:"interfaces,omitempty" json:"interfaces,omitempty"`
	InterfacesN     *[]openapi_types.UUID `form:"interfaces__n,omitempty" json:"interfaces__n,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q       *string               `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]string             `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]string             `form:"status__n,omitempty" json:"status__n,omitempty"`
	Vrfs    *[]openapi_types.UUID `form:"vrfs,omitempty" json:"vrfs,omitempty"`
	VrfsN   *[]openapi_types.UUID `form:"vrfs__n,omitempty" json:"vrfs__n,omitempty"`
}

// PluginsFirewallZoneBulkPartialUpdateJSONBody defines parameters for PluginsFirewallZoneBulkPartialUpdate.
type PluginsFirewallZoneBulkPartialUpdateJSONBody = []PatchedBulkWritableZoneRequest

// PluginsFirewallZoneBulkUpdateJSONBody defines parameters for PluginsFirewallZoneBulkUpdate.
type PluginsFirewallZoneBulkUpdateJSONBody = []BulkWritableZoneRequest

// PluginsFirewallZoneNotesListParams defines parameters for PluginsFirewallZoneNotesList.
type PluginsFirewallZoneNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// PluginsGoldenConfigComplianceFeatureBulkDestroyJSONBody defines parameters for PluginsGoldenConfigComplianceFeatureBulkDestroy.
type PluginsGoldenConfigComplianceFeatureBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigComplianceFeatureListParams defines parameters for PluginsGoldenConfigComplianceFeatureList.
type PluginsGoldenConfigComplianceFeatureListParams struct {
	Id *openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int    `form:"limit,omitempty" json:"limit,omitempty"`
	Name  *string `form:"name,omitempty" json:"name,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q    *string `form:"q,omitempty" json:"q,omitempty"`
	Slug *string `form:"slug,omitempty" json:"slug,omitempty"`
}

// PluginsGoldenConfigComplianceFeatureBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigComplianceFeatureBulkPartialUpdate.
type PluginsGoldenConfigComplianceFeatureBulkPartialUpdateJSONBody = []PatchedBulkWritableComplianceFeatureRequest

// PluginsGoldenConfigComplianceFeatureBulkUpdateJSONBody defines parameters for PluginsGoldenConfigComplianceFeatureBulkUpdate.
type PluginsGoldenConfigComplianceFeatureBulkUpdateJSONBody = []BulkWritableComplianceFeatureRequest

// PluginsGoldenConfigComplianceRuleBulkDestroyJSONBody defines parameters for PluginsGoldenConfigComplianceRuleBulkDestroy.
type PluginsGoldenConfigComplianceRuleBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigComplianceRuleListParams defines parameters for PluginsGoldenConfigComplianceRuleList.
type PluginsGoldenConfigComplianceRuleListParams struct {
	Feature *openapi_types.UUID `form:"feature,omitempty" json:"feature,omitempty"`
	Id      *openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsGoldenConfigComplianceRuleBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigComplianceRuleBulkPartialUpdate.
type PluginsGoldenConfigComplianceRuleBulkPartialUpdateJSONBody = []PatchedBulkWritableComplianceRuleRequest

// PluginsGoldenConfigComplianceRuleBulkUpdateJSONBody defines parameters for PluginsGoldenConfigComplianceRuleBulkUpdate.
type PluginsGoldenConfigComplianceRuleBulkUpdateJSONBody = []BulkWritableComplianceRuleRequest

// PluginsGoldenConfigConfigComplianceBulkDestroyJSONBody defines parameters for PluginsGoldenConfigConfigComplianceBulkDestroy.
type PluginsGoldenConfigConfigComplianceBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigConfigComplianceListParams defines parameters for PluginsGoldenConfigConfigComplianceList.
type PluginsGoldenConfigConfigComplianceListParams struct {
	// Device Device Name
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device ID
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceStatus Device Status
	DeviceStatus *[]openapi_types.UUID `form:"device_status,omitempty" json:"device_status,omitempty"`

	// DeviceStatusId Device Status
	DeviceStatusId *[]openapi_types.UUID `form:"device_status_id,omitempty" json:"device_status_id,omitempty"`

	// DeviceType DeviceType (slug)
	DeviceType *[]string `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeId Device type (ID)
	DeviceTypeId *[]openapi_types.UUID `form:"device_type_id,omitempty" json:"device_type_id,omitempty"`
	Id           *openapi_types.UUID   `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *[]string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *[]openapi_types.UUID `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rack Rack (name)
	Rack *[]string `form:"rack,omitempty" json:"rack,omitempty"`

	// RackGroup Rack group (slug)
	RackGroup *[]string `form:"rack_group,omitempty" json:"rack_group,omitempty"`

	// RackGroupId Rack group (ID)
	RackGroupId *[]openapi_types.UUID `form:"rack_group_id,omitempty" json:"rack_group_id,omitempty"`

	// RackId Rack (ID)
	RackId *[]openapi_types.UUID `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// Tenant Tenant (slug)
	Tenant *[]string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantId Tenant (ID)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`
}

// PluginsGoldenConfigConfigComplianceBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigConfigComplianceBulkPartialUpdate.
type PluginsGoldenConfigConfigComplianceBulkPartialUpdateJSONBody = []PatchedBulkWritableConfigComplianceRequest

// PluginsGoldenConfigConfigComplianceBulkUpdateJSONBody defines parameters for PluginsGoldenConfigConfigComplianceBulkUpdate.
type PluginsGoldenConfigConfigComplianceBulkUpdateJSONBody = []BulkWritableConfigComplianceRequest

// PluginsGoldenConfigConfigRemoveBulkDestroyJSONBody defines parameters for PluginsGoldenConfigConfigRemoveBulkDestroy.
type PluginsGoldenConfigConfigRemoveBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigConfigRemoveListParams defines parameters for PluginsGoldenConfigConfigRemoveList.
type PluginsGoldenConfigConfigRemoveListParams struct {
	Id *openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int    `form:"limit,omitempty" json:"limit,omitempty"`
	Name  *string `form:"name,omitempty" json:"name,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsGoldenConfigConfigRemoveBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigConfigRemoveBulkPartialUpdate.
type PluginsGoldenConfigConfigRemoveBulkPartialUpdateJSONBody = []PatchedBulkWritableConfigRemoveRequest

// PluginsGoldenConfigConfigRemoveBulkUpdateJSONBody defines parameters for PluginsGoldenConfigConfigRemoveBulkUpdate.
type PluginsGoldenConfigConfigRemoveBulkUpdateJSONBody = []BulkWritableConfigRemoveRequest

// PluginsGoldenConfigConfigReplaceBulkDestroyJSONBody defines parameters for PluginsGoldenConfigConfigReplaceBulkDestroy.
type PluginsGoldenConfigConfigReplaceBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigConfigReplaceListParams defines parameters for PluginsGoldenConfigConfigReplaceList.
type PluginsGoldenConfigConfigReplaceListParams struct {
	Id *openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int    `form:"limit,omitempty" json:"limit,omitempty"`
	Name  *string `form:"name,omitempty" json:"name,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsGoldenConfigConfigReplaceBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigConfigReplaceBulkPartialUpdate.
type PluginsGoldenConfigConfigReplaceBulkPartialUpdateJSONBody = []PatchedBulkWritableConfigReplaceRequest

// PluginsGoldenConfigConfigReplaceBulkUpdateJSONBody defines parameters for PluginsGoldenConfigConfigReplaceBulkUpdate.
type PluginsGoldenConfigConfigReplaceBulkUpdateJSONBody = []BulkWritableConfigReplaceRequest

// PluginsGoldenConfigGoldenConfigSettingsBulkDestroyJSONBody defines parameters for PluginsGoldenConfigGoldenConfigSettingsBulkDestroy.
type PluginsGoldenConfigGoldenConfigSettingsBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigGoldenConfigSettingsListParams defines parameters for PluginsGoldenConfigGoldenConfigSettingsList.
type PluginsGoldenConfigGoldenConfigSettingsListParams struct {
	BackupRepository    *openapi_types.UUID   `form:"backup_repository,omitempty" json:"backup_repository,omitempty"`
	BackupRepositoryN   *openapi_types.UUID   `form:"backup_repository__n,omitempty" json:"backup_repository__n,omitempty"`
	Id                  *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew               *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre               *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw               *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                 *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic               *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie               *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew              *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire              *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw              *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre               *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IntendedRepository  *openapi_types.UUID   `form:"intended_repository,omitempty" json:"intended_repository,omitempty"`
	IntendedRepositoryN *openapi_types.UUID   `form:"intended_repository__n,omitempty" json:"intended_repository__n,omitempty"`
	JinjaRepository     *openapi_types.UUID   `form:"jinja_repository,omitempty" json:"jinja_repository,omitempty"`
	JinjaRepositoryN    *openapi_types.UUID   `form:"jinja_repository__n,omitempty" json:"jinja_repository__n,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q         *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug      *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc    *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe    *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew   *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre   *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw   *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN     *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic   *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie   *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew  *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire  *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw  *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre   *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe    *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Weight    *[]int    `form:"weight,omitempty" json:"weight,omitempty"`
	WeightGt  *[]int    `form:"weight__gt,omitempty" json:"weight__gt,omitempty"`
	WeightGte *[]int    `form:"weight__gte,omitempty" json:"weight__gte,omitempty"`
	WeightLt  *[]int    `form:"weight__lt,omitempty" json:"weight__lt,omitempty"`
	WeightLte *[]int    `form:"weight__lte,omitempty" json:"weight__lte,omitempty"`
	WeightN   *[]int    `form:"weight__n,omitempty" json:"weight__n,omitempty"`
}

// PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdate.
type PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdateJSONBody = []PatchedBulkWritableGoldenConfigSettingRequest

// PluginsGoldenConfigGoldenConfigSettingsBulkUpdateJSONBody defines parameters for PluginsGoldenConfigGoldenConfigSettingsBulkUpdate.
type PluginsGoldenConfigGoldenConfigSettingsBulkUpdateJSONBody = []BulkWritableGoldenConfigSettingRequest

// PluginsGoldenConfigGoldenConfigBulkDestroyJSONBody defines parameters for PluginsGoldenConfigGoldenConfigBulkDestroy.
type PluginsGoldenConfigGoldenConfigBulkDestroyJSONBody = []BulkOperationRequest

// PluginsGoldenConfigGoldenConfigListParams defines parameters for PluginsGoldenConfigGoldenConfigList.
type PluginsGoldenConfigGoldenConfigListParams struct {
	// Device Device Name
	Device *[]string `form:"device,omitempty" json:"device,omitempty"`

	// DeviceId Device ID
	DeviceId *[]openapi_types.UUID `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceStatus Device Status
	DeviceStatus *[]openapi_types.UUID `form:"device_status,omitempty" json:"device_status,omitempty"`

	// DeviceStatusId Device Status
	DeviceStatusId *[]openapi_types.UUID `form:"device_status_id,omitempty" json:"device_status_id,omitempty"`

	// DeviceType DeviceType (slug)
	DeviceType *[]string `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeId Device type (ID)
	DeviceTypeId *[]openapi_types.UUID `form:"device_type_id,omitempty" json:"device_type_id,omitempty"`
	Id           *openapi_types.UUID   `form:"id,omitempty" json:"id,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Manufacturer Manufacturer (slug)
	Manufacturer *[]string `form:"manufacturer,omitempty" json:"manufacturer,omitempty"`

	// ManufacturerId Manufacturer (ID)
	ManufacturerId *[]openapi_types.UUID `form:"manufacturer_id,omitempty" json:"manufacturer_id,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *[]string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *[]openapi_types.UUID `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Rack Rack (name)
	Rack *[]string `form:"rack,omitempty" json:"rack,omitempty"`

	// RackGroup Rack group (slug)
	RackGroup *[]string `form:"rack_group,omitempty" json:"rack_group,omitempty"`

	// RackGroupId Rack group (ID)
	RackGroupId *[]openapi_types.UUID `form:"rack_group_id,omitempty" json:"rack_group_id,omitempty"`

	// RackId Rack (ID)
	RackId *[]openapi_types.UUID `form:"rack_id,omitempty" json:"rack_id,omitempty"`

	// Region Region (slug)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionId Region (ID)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// Role Role (slug)
	Role *[]string `form:"role,omitempty" json:"role,omitempty"`

	// RoleId Role (ID)
	RoleId *[]openapi_types.UUID `form:"role_id,omitempty" json:"role_id,omitempty"`

	// Site Site name (slug)
	Site *[]string `form:"site,omitempty" json:"site,omitempty"`

	// SiteId Site (ID)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// Tenant Tenant (slug)
	Tenant *[]string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantId Tenant (ID)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`
}

// PluginsGoldenConfigGoldenConfigBulkPartialUpdateJSONBody defines parameters for PluginsGoldenConfigGoldenConfigBulkPartialUpdate.
type PluginsGoldenConfigGoldenConfigBulkPartialUpdateJSONBody = []PatchedBulkWritableGoldenConfigRequest

// PluginsGoldenConfigGoldenConfigBulkUpdateJSONBody defines parameters for PluginsGoldenConfigGoldenConfigBulkUpdate.
type PluginsGoldenConfigGoldenConfigBulkUpdateJSONBody = []BulkWritableGoldenConfigRequest

// PluginsNautobotDeviceLifecycleMgmtContactBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContactBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtContactBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtContactListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtContactList.
type PluginsNautobotDeviceLifecycleMgmtContactListParams struct {
	Address        *[]string             `form:"address,omitempty" json:"address,omitempty"`
	AddressIc      *[]string             `form:"address__ic,omitempty" json:"address__ic,omitempty"`
	AddressIe      *[]string             `form:"address__ie,omitempty" json:"address__ie,omitempty"`
	AddressIew     *[]string             `form:"address__iew,omitempty" json:"address__iew,omitempty"`
	AddressIre     *[]string             `form:"address__ire,omitempty" json:"address__ire,omitempty"`
	AddressIsw     *[]string             `form:"address__isw,omitempty" json:"address__isw,omitempty"`
	AddressN       *[]string             `form:"address__n,omitempty" json:"address__n,omitempty"`
	AddressNic     *[]string             `form:"address__nic,omitempty" json:"address__nic,omitempty"`
	AddressNie     *[]string             `form:"address__nie,omitempty" json:"address__nie,omitempty"`
	AddressNiew    *[]string             `form:"address__niew,omitempty" json:"address__niew,omitempty"`
	AddressNire    *[]string             `form:"address__nire,omitempty" json:"address__nire,omitempty"`
	AddressNisw    *[]string             `form:"address__nisw,omitempty" json:"address__nisw,omitempty"`
	AddressNre     *[]string             `form:"address__nre,omitempty" json:"address__nre,omitempty"`
	AddressRe      *[]string             `form:"address__re,omitempty" json:"address__re,omitempty"`
	Comments       *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc     *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe     *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew    *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre    *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw    *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN      *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic    *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie    *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew   *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire   *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw   *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre    *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe     *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Contract       *openapi_types.UUID   `form:"contract,omitempty" json:"contract,omitempty"`
	ContractN      *openapi_types.UUID   `form:"contract__n,omitempty" json:"contract__n,omitempty"`
	Created        *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte     *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte     *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Email          *[]string             `form:"email,omitempty" json:"email,omitempty"`
	EmailIc        *[]string             `form:"email__ic,omitempty" json:"email__ic,omitempty"`
	EmailIe        *[]string             `form:"email__ie,omitempty" json:"email__ie,omitempty"`
	EmailIew       *[]string             `form:"email__iew,omitempty" json:"email__iew,omitempty"`
	EmailIre       *[]string             `form:"email__ire,omitempty" json:"email__ire,omitempty"`
	EmailIsw       *[]string             `form:"email__isw,omitempty" json:"email__isw,omitempty"`
	EmailN         *[]string             `form:"email__n,omitempty" json:"email__n,omitempty"`
	EmailNic       *[]string             `form:"email__nic,omitempty" json:"email__nic,omitempty"`
	EmailNie       *[]string             `form:"email__nie,omitempty" json:"email__nie,omitempty"`
	EmailNiew      *[]string             `form:"email__niew,omitempty" json:"email__niew,omitempty"`
	EmailNire      *[]string             `form:"email__nire,omitempty" json:"email__nire,omitempty"`
	EmailNisw      *[]string             `form:"email__nisw,omitempty" json:"email__nisw,omitempty"`
	EmailNre       *[]string             `form:"email__nre,omitempty" json:"email__nre,omitempty"`
	EmailRe        *[]string             `form:"email__re,omitempty" json:"email__re,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset      *int      `form:"offset,omitempty" json:"offset,omitempty"`
	Phone       *[]string `form:"phone,omitempty" json:"phone,omitempty"`
	PhoneIc     *[]string `form:"phone__ic,omitempty" json:"phone__ic,omitempty"`
	PhoneIe     *[]string `form:"phone__ie,omitempty" json:"phone__ie,omitempty"`
	PhoneIew    *[]string `form:"phone__iew,omitempty" json:"phone__iew,omitempty"`
	PhoneIre    *[]string `form:"phone__ire,omitempty" json:"phone__ire,omitempty"`
	PhoneIsw    *[]string `form:"phone__isw,omitempty" json:"phone__isw,omitempty"`
	PhoneN      *[]string `form:"phone__n,omitempty" json:"phone__n,omitempty"`
	PhoneNic    *[]string `form:"phone__nic,omitempty" json:"phone__nic,omitempty"`
	PhoneNie    *[]string `form:"phone__nie,omitempty" json:"phone__nie,omitempty"`
	PhoneNiew   *[]string `form:"phone__niew,omitempty" json:"phone__niew,omitempty"`
	PhoneNire   *[]string `form:"phone__nire,omitempty" json:"phone__nire,omitempty"`
	PhoneNisw   *[]string `form:"phone__nisw,omitempty" json:"phone__nisw,omitempty"`
	PhoneNre    *[]string `form:"phone__nre,omitempty" json:"phone__nre,omitempty"`
	PhoneRe     *[]string `form:"phone__re,omitempty" json:"phone__re,omitempty"`
	Priority    *[]int    `form:"priority,omitempty" json:"priority,omitempty"`
	PriorityGt  *[]int    `form:"priority__gt,omitempty" json:"priority__gt,omitempty"`
	PriorityGte *[]int    `form:"priority__gte,omitempty" json:"priority__gte,omitempty"`
	PriorityLt  *[]int    `form:"priority__lt,omitempty" json:"priority__lt,omitempty"`
	PriorityLte *[]int    `form:"priority__lte,omitempty" json:"priority__lte,omitempty"`
	PriorityN   *[]int    `form:"priority__n,omitempty" json:"priority__n,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Type     *[]string `form:"type,omitempty" json:"type,omitempty"`
	TypeIc   *[]string `form:"type__ic,omitempty" json:"type__ic,omitempty"`
	TypeIe   *[]string `form:"type__ie,omitempty" json:"type__ie,omitempty"`
	TypeIew  *[]string `form:"type__iew,omitempty" json:"type__iew,omitempty"`
	TypeIre  *[]string `form:"type__ire,omitempty" json:"type__ire,omitempty"`
	TypeIsw  *[]string `form:"type__isw,omitempty" json:"type__isw,omitempty"`
	TypeN    *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`
	TypeNic  *[]string `form:"type__nic,omitempty" json:"type__nic,omitempty"`
	TypeNie  *[]string `form:"type__nie,omitempty" json:"type__nie,omitempty"`
	TypeNiew *[]string `form:"type__niew,omitempty" json:"type__niew,omitempty"`
	TypeNire *[]string `form:"type__nire,omitempty" json:"type__nire,omitempty"`
	TypeNisw *[]string `form:"type__nisw,omitempty" json:"type__nisw,omitempty"`
	TypeNre  *[]string `form:"type__nre,omitempty" json:"type__nre,omitempty"`
	TypeRe   *[]string `form:"type__re,omitempty" json:"type__re,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdateJSONBody = []PatchedBulkWritableContactLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContactBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContactBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtContactBulkUpdateJSONBody = []BulkWritableContactLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContractBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContractBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtContractBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtContractListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtContractList.
type PluginsNautobotDeviceLifecycleMgmtContractListParams struct {
	ContractType     *[]string           `form:"contract_type,omitempty" json:"contract_type,omitempty"`
	ContractTypeIc   *[]string           `form:"contract_type__ic,omitempty" json:"contract_type__ic,omitempty"`
	ContractTypeIe   *[]string           `form:"contract_type__ie,omitempty" json:"contract_type__ie,omitempty"`
	ContractTypeIew  *[]string           `form:"contract_type__iew,omitempty" json:"contract_type__iew,omitempty"`
	ContractTypeIre  *[]string           `form:"contract_type__ire,omitempty" json:"contract_type__ire,omitempty"`
	ContractTypeIsw  *[]string           `form:"contract_type__isw,omitempty" json:"contract_type__isw,omitempty"`
	ContractTypeN    *[]string           `form:"contract_type__n,omitempty" json:"contract_type__n,omitempty"`
	ContractTypeNic  *[]string           `form:"contract_type__nic,omitempty" json:"contract_type__nic,omitempty"`
	ContractTypeNie  *[]string           `form:"contract_type__nie,omitempty" json:"contract_type__nie,omitempty"`
	ContractTypeNiew *[]string           `form:"contract_type__niew,omitempty" json:"contract_type__niew,omitempty"`
	ContractTypeNire *[]string           `form:"contract_type__nire,omitempty" json:"contract_type__nire,omitempty"`
	ContractTypeNisw *[]string           `form:"contract_type__nisw,omitempty" json:"contract_type__nisw,omitempty"`
	ContractTypeNre  *[]string           `form:"contract_type__nre,omitempty" json:"contract_type__nre,omitempty"`
	ContractTypeRe   *[]string           `form:"contract_type__re,omitempty" json:"contract_type__re,omitempty"`
	Cost             *[]float32          `form:"cost,omitempty" json:"cost,omitempty"`
	CostGt           *[]float32          `form:"cost__gt,omitempty" json:"cost__gt,omitempty"`
	CostGte          *[]float32          `form:"cost__gte,omitempty" json:"cost__gte,omitempty"`
	CostLt           *[]float32          `form:"cost__lt,omitempty" json:"cost__lt,omitempty"`
	CostLte          *[]float32          `form:"cost__lte,omitempty" json:"cost__lte,omitempty"`
	CostN            *[]float32          `form:"cost__n,omitempty" json:"cost__n,omitempty"`
	Created          *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte       *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte       *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	End              *openapi_types.Date `form:"end,omitempty" json:"end,omitempty"`
	EndGte           *openapi_types.Date `form:"end__gte,omitempty" json:"end__gte,omitempty"`
	EndLte           *openapi_types.Date `form:"end__lte,omitempty" json:"end__lte,omitempty"`

	// Expired Expired
	Expired        *bool                 `form:"expired,omitempty" json:"expired,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Provider Provider
	Provider *[]openapi_types.UUID `form:"provider,omitempty" json:"provider,omitempty"`

	// ProviderN Provider
	ProviderN *[]openapi_types.UUID `form:"provider__n,omitempty" json:"provider__n,omitempty"`

	// Q Search
	Q                *string             `form:"q,omitempty" json:"q,omitempty"`
	Start            *openapi_types.Date `form:"start,omitempty" json:"start,omitempty"`
	StartGte         *openapi_types.Date `form:"start__gte,omitempty" json:"start__gte,omitempty"`
	StartLte         *openapi_types.Date `form:"start__lte,omitempty" json:"start__lte,omitempty"`
	SupportLevel     *[]string           `form:"support_level,omitempty" json:"support_level,omitempty"`
	SupportLevelIc   *[]string           `form:"support_level__ic,omitempty" json:"support_level__ic,omitempty"`
	SupportLevelIe   *[]string           `form:"support_level__ie,omitempty" json:"support_level__ie,omitempty"`
	SupportLevelIew  *[]string           `form:"support_level__iew,omitempty" json:"support_level__iew,omitempty"`
	SupportLevelIre  *[]string           `form:"support_level__ire,omitempty" json:"support_level__ire,omitempty"`
	SupportLevelIsw  *[]string           `form:"support_level__isw,omitempty" json:"support_level__isw,omitempty"`
	SupportLevelN    *[]string           `form:"support_level__n,omitempty" json:"support_level__n,omitempty"`
	SupportLevelNic  *[]string           `form:"support_level__nic,omitempty" json:"support_level__nic,omitempty"`
	SupportLevelNie  *[]string           `form:"support_level__nie,omitempty" json:"support_level__nie,omitempty"`
	SupportLevelNiew *[]string           `form:"support_level__niew,omitempty" json:"support_level__niew,omitempty"`
	SupportLevelNire *[]string           `form:"support_level__nire,omitempty" json:"support_level__nire,omitempty"`
	SupportLevelNisw *[]string           `form:"support_level__nisw,omitempty" json:"support_level__nisw,omitempty"`
	SupportLevelNre  *[]string           `form:"support_level__nre,omitempty" json:"support_level__nre,omitempty"`
	SupportLevelRe   *[]string           `form:"support_level__re,omitempty" json:"support_level__re,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdateJSONBody = []PatchedBulkWritableContractLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContractBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtContractBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtContractBulkUpdateJSONBody = []BulkWritableContractLCMRequest

// PluginsNautobotDeviceLifecycleMgmtCveBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtCveBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtCveBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtCveListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtCveList.
type PluginsNautobotDeviceLifecycleMgmtCveListParams struct {
	Comments        *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc      *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe      *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew     *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre     *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw     *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN       *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic     *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie     *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew    *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire    *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw    *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre     *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe      *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Cvss            *[]float32            `form:"cvss,omitempty" json:"cvss,omitempty"`
	CvssGt          *[]float32            `form:"cvss__gt,omitempty" json:"cvss__gt,omitempty"`
	CvssGte         *[]float32            `form:"cvss__gte,omitempty" json:"cvss__gte,omitempty"`
	CvssLt          *[]float32            `form:"cvss__lt,omitempty" json:"cvss__lt,omitempty"`
	CvssLte         *[]float32            `form:"cvss__lte,omitempty" json:"cvss__lte,omitempty"`
	CvssN           *[]float32            `form:"cvss__n,omitempty" json:"cvss__n,omitempty"`
	CvssV2          *[]float32            `form:"cvss_v2,omitempty" json:"cvss_v2,omitempty"`
	CvssV2Gt        *[]float32            `form:"cvss_v2__gt,omitempty" json:"cvss_v2__gt,omitempty"`
	CvssV2Gte       *[]float32            `form:"cvss_v2__gte,omitempty" json:"cvss_v2__gte,omitempty"`
	CvssV2Lt        *[]float32            `form:"cvss_v2__lt,omitempty" json:"cvss_v2__lt,omitempty"`
	CvssV2Lte       *[]float32            `form:"cvss_v2__lte,omitempty" json:"cvss_v2__lte,omitempty"`
	CvssV2N         *[]float32            `form:"cvss_v2__n,omitempty" json:"cvss_v2__n,omitempty"`
	CvssV3          *[]float32            `form:"cvss_v3,omitempty" json:"cvss_v3,omitempty"`
	CvssV3Gt        *[]float32            `form:"cvss_v3__gt,omitempty" json:"cvss_v3__gt,omitempty"`
	CvssV3Gte       *[]float32            `form:"cvss_v3__gte,omitempty" json:"cvss_v3__gte,omitempty"`
	CvssV3Lt        *[]float32            `form:"cvss_v3__lt,omitempty" json:"cvss_v3__lt,omitempty"`
	CvssV3Lte       *[]float32            `form:"cvss_v3__lte,omitempty" json:"cvss_v3__lte,omitempty"`
	CvssV3N         *[]float32            `form:"cvss_v3__n,omitempty" json:"cvss_v3__n,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	ExcludeStatus   *[]openapi_types.UUID `form:"exclude_status,omitempty" json:"exclude_status,omitempty"`
	ExcludeStatusN  *[]openapi_types.UUID `form:"exclude_status__n,omitempty" json:"exclude_status__n,omitempty"`
	Fix             *[]string             `form:"fix,omitempty" json:"fix,omitempty"`
	FixIc           *[]string             `form:"fix__ic,omitempty" json:"fix__ic,omitempty"`
	FixIe           *[]string             `form:"fix__ie,omitempty" json:"fix__ie,omitempty"`
	FixIew          *[]string             `form:"fix__iew,omitempty" json:"fix__iew,omitempty"`
	FixIre          *[]string             `form:"fix__ire,omitempty" json:"fix__ire,omitempty"`
	FixIsw          *[]string             `form:"fix__isw,omitempty" json:"fix__isw,omitempty"`
	FixN            *[]string             `form:"fix__n,omitempty" json:"fix__n,omitempty"`
	FixNic          *[]string             `form:"fix__nic,omitempty" json:"fix__nic,omitempty"`
	FixNie          *[]string             `form:"fix__nie,omitempty" json:"fix__nie,omitempty"`
	FixNiew         *[]string             `form:"fix__niew,omitempty" json:"fix__niew,omitempty"`
	FixNire         *[]string             `form:"fix__nire,omitempty" json:"fix__nire,omitempty"`
	FixNisw         *[]string             `form:"fix__nisw,omitempty" json:"fix__nisw,omitempty"`
	FixNre          *[]string             `form:"fix__nre,omitempty" json:"fix__nre,omitempty"`
	FixRe           *[]string             `form:"fix__re,omitempty" json:"fix__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Link     *[]string `form:"link,omitempty" json:"link,omitempty"`
	LinkIc   *[]string `form:"link__ic,omitempty" json:"link__ic,omitempty"`
	LinkIe   *[]string `form:"link__ie,omitempty" json:"link__ie,omitempty"`
	LinkIew  *[]string `form:"link__iew,omitempty" json:"link__iew,omitempty"`
	LinkIre  *[]string `form:"link__ire,omitempty" json:"link__ire,omitempty"`
	LinkIsw  *[]string `form:"link__isw,omitempty" json:"link__isw,omitempty"`
	LinkN    *[]string `form:"link__n,omitempty" json:"link__n,omitempty"`
	LinkNic  *[]string `form:"link__nic,omitempty" json:"link__nic,omitempty"`
	LinkNie  *[]string `form:"link__nie,omitempty" json:"link__nie,omitempty"`
	LinkNiew *[]string `form:"link__niew,omitempty" json:"link__niew,omitempty"`
	LinkNire *[]string `form:"link__nire,omitempty" json:"link__nire,omitempty"`
	LinkNisw *[]string `form:"link__nisw,omitempty" json:"link__nisw,omitempty"`
	LinkNre  *[]string `form:"link__nre,omitempty" json:"link__nre,omitempty"`
	LinkRe   *[]string `form:"link__re,omitempty" json:"link__re,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset              *int                `form:"offset,omitempty" json:"offset,omitempty"`
	PublishedDateGte    *openapi_types.Date `form:"published_date__gte,omitempty" json:"published_date__gte,omitempty"`
	PublishedDateLte    *openapi_types.Date `form:"published_date__lte,omitempty" json:"published_date__lte,omitempty"`
	PublishedDateAfter  *time.Time          `form:"published_date_after,omitempty" json:"published_date_after,omitempty"`
	PublishedDateBefore *time.Time          `form:"published_date_before,omitempty" json:"published_date_before,omitempty"`

	// Q Search
	Q         *string               `form:"q,omitempty" json:"q,omitempty"`
	Severity  *string               `form:"severity,omitempty" json:"severity,omitempty"`
	SeverityN *string               `form:"severity__n,omitempty" json:"severity__n,omitempty"`
	Status    *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN   *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag       *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN      *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdateJSONBody = []PatchedBulkWritableCVELCMRequest

// PluginsNautobotDeviceLifecycleMgmtCveBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtCveBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtCveBulkUpdateJSONBody = []BulkWritableCVELCMRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtHardwareList.
type PluginsNautobotDeviceLifecycleMgmtHardwareListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// DeviceType Device Type (Slug)
	DeviceType *[]string `form:"device_type,omitempty" json:"device_type,omitempty"`

	// DeviceTypeN Device Type (Slug)
	DeviceTypeN *[]string `form:"device_type__n,omitempty" json:"device_type__n,omitempty"`

	// DeviceTypeId Device Type
	DeviceTypeId *[]openapi_types.UUID `form:"device_type_id,omitempty" json:"device_type_id,omitempty"`

	// DeviceTypeIdN Device Type
	DeviceTypeIdN           *[]openapi_types.UUID `form:"device_type_id__n,omitempty" json:"device_type_id__n,omitempty"`
	DocumentationUrl        *string               `form:"documentation_url,omitempty" json:"documentation_url,omitempty"`
	EndOfSale               *openapi_types.Date   `form:"end_of_sale,omitempty" json:"end_of_sale,omitempty"`
	EndOfSaleGte            *openapi_types.Date   `form:"end_of_sale__gte,omitempty" json:"end_of_sale__gte,omitempty"`
	EndOfSaleLte            *openapi_types.Date   `form:"end_of_sale__lte,omitempty" json:"end_of_sale__lte,omitempty"`
	EndOfSecurityPatches    *openapi_types.Date   `form:"end_of_security_patches,omitempty" json:"end_of_security_patches,omitempty"`
	EndOfSecurityPatchesGte *openapi_types.Date   `form:"end_of_security_patches__gte,omitempty" json:"end_of_security_patches__gte,omitempty"`
	EndOfSecurityPatchesLte *openapi_types.Date   `form:"end_of_security_patches__lte,omitempty" json:"end_of_security_patches__lte,omitempty"`
	EndOfSupport            *openapi_types.Date   `form:"end_of_support,omitempty" json:"end_of_support,omitempty"`
	EndOfSupportGte         *openapi_types.Date   `form:"end_of_support__gte,omitempty" json:"end_of_support__gte,omitempty"`
	EndOfSupportLte         *openapi_types.Date   `form:"end_of_support__lte,omitempty" json:"end_of_support__lte,omitempty"`
	EndOfSwReleases         *openapi_types.Date   `form:"end_of_sw_releases,omitempty" json:"end_of_sw_releases,omitempty"`
	EndOfSwReleasesGte      *openapi_types.Date   `form:"end_of_sw_releases__gte,omitempty" json:"end_of_sw_releases__gte,omitempty"`
	EndOfSwReleasesLte      *openapi_types.Date   `form:"end_of_sw_releases__lte,omitempty" json:"end_of_sw_releases__lte,omitempty"`

	// Expired Expired
	Expired *bool                 `form:"expired,omitempty" json:"expired,omitempty"`
	Id      *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc    *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe    *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew   *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre   *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw   *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN     *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic   *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie   *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew  *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire  *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw  *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre   *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe    *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// InventoryItem Inventory Part ID
	InventoryItem *[]string `form:"inventory_item,omitempty" json:"inventory_item,omitempty"`

	// InventoryItemN Inventory Part ID
	InventoryItemN *[]string  `form:"inventory_item__n,omitempty" json:"inventory_item__n,omitempty"`
	LastUpdated    *time.Time `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdateJSONBody = []PatchedBulkWritableHardwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdateJSONBody = []BulkWritableHardwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtProviderListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtProviderList.
type PluginsNautobotDeviceLifecycleMgmtProviderListParams struct {
	Comments        *[]string             `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc      *[]string             `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe      *[]string             `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew     *[]string             `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre     *[]string             `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw     *[]string             `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN       *[]string             `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic     *[]string             `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie     *[]string             `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew    *[]string             `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire    *[]string             `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw    *[]string             `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre     *[]string             `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe      *[]string             `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Country         *[]string             `form:"country,omitempty" json:"country,omitempty"`
	CountryIc       *[]string             `form:"country__ic,omitempty" json:"country__ic,omitempty"`
	CountryIe       *[]string             `form:"country__ie,omitempty" json:"country__ie,omitempty"`
	CountryIew      *[]string             `form:"country__iew,omitempty" json:"country__iew,omitempty"`
	CountryIre      *[]string             `form:"country__ire,omitempty" json:"country__ire,omitempty"`
	CountryIsw      *[]string             `form:"country__isw,omitempty" json:"country__isw,omitempty"`
	CountryN        *[]string             `form:"country__n,omitempty" json:"country__n,omitempty"`
	CountryNic      *[]string             `form:"country__nic,omitempty" json:"country__nic,omitempty"`
	CountryNie      *[]string             `form:"country__nie,omitempty" json:"country__nie,omitempty"`
	CountryNiew     *[]string             `form:"country__niew,omitempty" json:"country__niew,omitempty"`
	CountryNire     *[]string             `form:"country__nire,omitempty" json:"country__nire,omitempty"`
	CountryNisw     *[]string             `form:"country__nisw,omitempty" json:"country__nisw,omitempty"`
	CountryNre      *[]string             `form:"country__nre,omitempty" json:"country__nre,omitempty"`
	CountryRe       *[]string             `form:"country__re,omitempty" json:"country__re,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Email           *[]string             `form:"email,omitempty" json:"email,omitempty"`
	EmailIc         *[]string             `form:"email__ic,omitempty" json:"email__ic,omitempty"`
	EmailIe         *[]string             `form:"email__ie,omitempty" json:"email__ie,omitempty"`
	EmailIew        *[]string             `form:"email__iew,omitempty" json:"email__iew,omitempty"`
	EmailIre        *[]string             `form:"email__ire,omitempty" json:"email__ire,omitempty"`
	EmailIsw        *[]string             `form:"email__isw,omitempty" json:"email__isw,omitempty"`
	EmailN          *[]string             `form:"email__n,omitempty" json:"email__n,omitempty"`
	EmailNic        *[]string             `form:"email__nic,omitempty" json:"email__nic,omitempty"`
	EmailNie        *[]string             `form:"email__nie,omitempty" json:"email__nie,omitempty"`
	EmailNiew       *[]string             `form:"email__niew,omitempty" json:"email__niew,omitempty"`
	EmailNire       *[]string             `form:"email__nire,omitempty" json:"email__nire,omitempty"`
	EmailNisw       *[]string             `form:"email__nisw,omitempty" json:"email__nisw,omitempty"`
	EmailNre        *[]string             `form:"email__nre,omitempty" json:"email__nre,omitempty"`
	EmailRe         *[]string             `form:"email__re,omitempty" json:"email__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset              *int      `form:"offset,omitempty" json:"offset,omitempty"`
	Phone               *[]string `form:"phone,omitempty" json:"phone,omitempty"`
	PhoneIc             *[]string `form:"phone__ic,omitempty" json:"phone__ic,omitempty"`
	PhoneIe             *[]string `form:"phone__ie,omitempty" json:"phone__ie,omitempty"`
	PhoneIew            *[]string `form:"phone__iew,omitempty" json:"phone__iew,omitempty"`
	PhoneIre            *[]string `form:"phone__ire,omitempty" json:"phone__ire,omitempty"`
	PhoneIsw            *[]string `form:"phone__isw,omitempty" json:"phone__isw,omitempty"`
	PhoneN              *[]string `form:"phone__n,omitempty" json:"phone__n,omitempty"`
	PhoneNic            *[]string `form:"phone__nic,omitempty" json:"phone__nic,omitempty"`
	PhoneNie            *[]string `form:"phone__nie,omitempty" json:"phone__nie,omitempty"`
	PhoneNiew           *[]string `form:"phone__niew,omitempty" json:"phone__niew,omitempty"`
	PhoneNire           *[]string `form:"phone__nire,omitempty" json:"phone__nire,omitempty"`
	PhoneNisw           *[]string `form:"phone__nisw,omitempty" json:"phone__nisw,omitempty"`
	PhoneNre            *[]string `form:"phone__nre,omitempty" json:"phone__nre,omitempty"`
	PhoneRe             *[]string `form:"phone__re,omitempty" json:"phone__re,omitempty"`
	PhysicalAddress     *[]string `form:"physical_address,omitempty" json:"physical_address,omitempty"`
	PhysicalAddressIc   *[]string `form:"physical_address__ic,omitempty" json:"physical_address__ic,omitempty"`
	PhysicalAddressIe   *[]string `form:"physical_address__ie,omitempty" json:"physical_address__ie,omitempty"`
	PhysicalAddressIew  *[]string `form:"physical_address__iew,omitempty" json:"physical_address__iew,omitempty"`
	PhysicalAddressIre  *[]string `form:"physical_address__ire,omitempty" json:"physical_address__ire,omitempty"`
	PhysicalAddressIsw  *[]string `form:"physical_address__isw,omitempty" json:"physical_address__isw,omitempty"`
	PhysicalAddressN    *[]string `form:"physical_address__n,omitempty" json:"physical_address__n,omitempty"`
	PhysicalAddressNic  *[]string `form:"physical_address__nic,omitempty" json:"physical_address__nic,omitempty"`
	PhysicalAddressNie  *[]string `form:"physical_address__nie,omitempty" json:"physical_address__nie,omitempty"`
	PhysicalAddressNiew *[]string `form:"physical_address__niew,omitempty" json:"physical_address__niew,omitempty"`
	PhysicalAddressNire *[]string `form:"physical_address__nire,omitempty" json:"physical_address__nire,omitempty"`
	PhysicalAddressNisw *[]string `form:"physical_address__nisw,omitempty" json:"physical_address__nisw,omitempty"`
	PhysicalAddressNre  *[]string `form:"physical_address__nre,omitempty" json:"physical_address__nre,omitempty"`
	PhysicalAddressRe   *[]string `form:"physical_address__re,omitempty" json:"physical_address__re,omitempty"`
	PortalUrl           *[]string `form:"portal_url,omitempty" json:"portal_url,omitempty"`
	PortalUrlIc         *[]string `form:"portal_url__ic,omitempty" json:"portal_url__ic,omitempty"`
	PortalUrlIe         *[]string `form:"portal_url__ie,omitempty" json:"portal_url__ie,omitempty"`
	PortalUrlIew        *[]string `form:"portal_url__iew,omitempty" json:"portal_url__iew,omitempty"`
	PortalUrlIre        *[]string `form:"portal_url__ire,omitempty" json:"portal_url__ire,omitempty"`
	PortalUrlIsw        *[]string `form:"portal_url__isw,omitempty" json:"portal_url__isw,omitempty"`
	PortalUrlN          *[]string `form:"portal_url__n,omitempty" json:"portal_url__n,omitempty"`
	PortalUrlNic        *[]string `form:"portal_url__nic,omitempty" json:"portal_url__nic,omitempty"`
	PortalUrlNie        *[]string `form:"portal_url__nie,omitempty" json:"portal_url__nie,omitempty"`
	PortalUrlNiew       *[]string `form:"portal_url__niew,omitempty" json:"portal_url__niew,omitempty"`
	PortalUrlNire       *[]string `form:"portal_url__nire,omitempty" json:"portal_url__nire,omitempty"`
	PortalUrlNisw       *[]string `form:"portal_url__nisw,omitempty" json:"portal_url__nisw,omitempty"`
	PortalUrlNre        *[]string `form:"portal_url__nre,omitempty" json:"portal_url__nre,omitempty"`
	PortalUrlRe         *[]string `form:"portal_url__re,omitempty" json:"portal_url__re,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdateJSONBody = []PatchedBulkWritableProviderLCMRequest

// PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdateJSONBody = []BulkWritableProviderLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareImageList.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageListParams struct {
	Created      *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte   *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte   *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	DefaultImage *bool               `form:"default_image,omitempty" json:"default_image,omitempty"`

	// DeviceId Device ID
	DeviceId *string `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceName Device Name
	DeviceName *string `form:"device_name,omitempty" json:"device_name,omitempty"`

	// DeviceTypes Device Types (model)
	DeviceTypes *[]string `form:"device_types,omitempty" json:"device_types,omitempty"`

	// DeviceTypesN Device Types (model)
	DeviceTypesN *[]string `form:"device_types__n,omitempty" json:"device_types__n,omitempty"`

	// DeviceTypesId Device Types
	DeviceTypesId *[]openapi_types.UUID `form:"device_types_id,omitempty" json:"device_types_id,omitempty"`

	// DeviceTypesIdN Device Types
	DeviceTypesIdN        *[]openapi_types.UUID `form:"device_types_id__n,omitempty" json:"device_types_id__n,omitempty"`
	DownloadUrl           *[]string             `form:"download_url,omitempty" json:"download_url,omitempty"`
	DownloadUrlIc         *[]string             `form:"download_url__ic,omitempty" json:"download_url__ic,omitempty"`
	DownloadUrlIe         *[]string             `form:"download_url__ie,omitempty" json:"download_url__ie,omitempty"`
	DownloadUrlIew        *[]string             `form:"download_url__iew,omitempty" json:"download_url__iew,omitempty"`
	DownloadUrlIre        *[]string             `form:"download_url__ire,omitempty" json:"download_url__ire,omitempty"`
	DownloadUrlIsw        *[]string             `form:"download_url__isw,omitempty" json:"download_url__isw,omitempty"`
	DownloadUrlN          *[]string             `form:"download_url__n,omitempty" json:"download_url__n,omitempty"`
	DownloadUrlNic        *[]string             `form:"download_url__nic,omitempty" json:"download_url__nic,omitempty"`
	DownloadUrlNie        *[]string             `form:"download_url__nie,omitempty" json:"download_url__nie,omitempty"`
	DownloadUrlNiew       *[]string             `form:"download_url__niew,omitempty" json:"download_url__niew,omitempty"`
	DownloadUrlNire       *[]string             `form:"download_url__nire,omitempty" json:"download_url__nire,omitempty"`
	DownloadUrlNisw       *[]string             `form:"download_url__nisw,omitempty" json:"download_url__nisw,omitempty"`
	DownloadUrlNre        *[]string             `form:"download_url__nre,omitempty" json:"download_url__nre,omitempty"`
	DownloadUrlRe         *[]string             `form:"download_url__re,omitempty" json:"download_url__re,omitempty"`
	Id                    *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                  *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                  *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                 *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                 *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                 *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                   *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                 *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                 *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                 *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                  *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	ImageFileChecksum     *[]string             `form:"image_file_checksum,omitempty" json:"image_file_checksum,omitempty"`
	ImageFileChecksumIc   *[]string             `form:"image_file_checksum__ic,omitempty" json:"image_file_checksum__ic,omitempty"`
	ImageFileChecksumIe   *[]string             `form:"image_file_checksum__ie,omitempty" json:"image_file_checksum__ie,omitempty"`
	ImageFileChecksumIew  *[]string             `form:"image_file_checksum__iew,omitempty" json:"image_file_checksum__iew,omitempty"`
	ImageFileChecksumIre  *[]string             `form:"image_file_checksum__ire,omitempty" json:"image_file_checksum__ire,omitempty"`
	ImageFileChecksumIsw  *[]string             `form:"image_file_checksum__isw,omitempty" json:"image_file_checksum__isw,omitempty"`
	ImageFileChecksumN    *[]string             `form:"image_file_checksum__n,omitempty" json:"image_file_checksum__n,omitempty"`
	ImageFileChecksumNic  *[]string             `form:"image_file_checksum__nic,omitempty" json:"image_file_checksum__nic,omitempty"`
	ImageFileChecksumNie  *[]string             `form:"image_file_checksum__nie,omitempty" json:"image_file_checksum__nie,omitempty"`
	ImageFileChecksumNiew *[]string             `form:"image_file_checksum__niew,omitempty" json:"image_file_checksum__niew,omitempty"`
	ImageFileChecksumNire *[]string             `form:"image_file_checksum__nire,omitempty" json:"image_file_checksum__nire,omitempty"`
	ImageFileChecksumNisw *[]string             `form:"image_file_checksum__nisw,omitempty" json:"image_file_checksum__nisw,omitempty"`
	ImageFileChecksumNre  *[]string             `form:"image_file_checksum__nre,omitempty" json:"image_file_checksum__nre,omitempty"`
	ImageFileChecksumRe   *[]string             `form:"image_file_checksum__re,omitempty" json:"image_file_checksum__re,omitempty"`
	ImageFileName         *[]string             `form:"image_file_name,omitempty" json:"image_file_name,omitempty"`
	ImageFileNameIc       *[]string             `form:"image_file_name__ic,omitempty" json:"image_file_name__ic,omitempty"`
	ImageFileNameIe       *[]string             `form:"image_file_name__ie,omitempty" json:"image_file_name__ie,omitempty"`
	ImageFileNameIew      *[]string             `form:"image_file_name__iew,omitempty" json:"image_file_name__iew,omitempty"`
	ImageFileNameIre      *[]string             `form:"image_file_name__ire,omitempty" json:"image_file_name__ire,omitempty"`
	ImageFileNameIsw      *[]string             `form:"image_file_name__isw,omitempty" json:"image_file_name__isw,omitempty"`
	ImageFileNameN        *[]string             `form:"image_file_name__n,omitempty" json:"image_file_name__n,omitempty"`
	ImageFileNameNic      *[]string             `form:"image_file_name__nic,omitempty" json:"image_file_name__nic,omitempty"`
	ImageFileNameNie      *[]string             `form:"image_file_name__nie,omitempty" json:"image_file_name__nie,omitempty"`
	ImageFileNameNiew     *[]string             `form:"image_file_name__niew,omitempty" json:"image_file_name__niew,omitempty"`
	ImageFileNameNire     *[]string             `form:"image_file_name__nire,omitempty" json:"image_file_name__nire,omitempty"`
	ImageFileNameNisw     *[]string             `form:"image_file_name__nisw,omitempty" json:"image_file_name__nisw,omitempty"`
	ImageFileNameNre      *[]string             `form:"image_file_name__nre,omitempty" json:"image_file_name__nre,omitempty"`
	ImageFileNameRe       *[]string             `form:"image_file_name__re,omitempty" json:"image_file_name__re,omitempty"`

	// InventoryItemId InventoryItem ID
	InventoryItemId *string `form:"inventory_item_id,omitempty" json:"inventory_item_id,omitempty"`

	// InventoryItems Inventory Items (name)
	InventoryItems *[]openapi_types.UUID `form:"inventory_items,omitempty" json:"inventory_items,omitempty"`

	// InventoryItemsN Inventory Items (name)
	InventoryItemsN *[]openapi_types.UUID `form:"inventory_items__n,omitempty" json:"inventory_items__n,omitempty"`

	// InventoryItemsId Inventory Items
	InventoryItemsId *[]openapi_types.UUID `form:"inventory_items_id,omitempty" json:"inventory_items_id,omitempty"`

	// InventoryItemsIdN Inventory Items
	InventoryItemsIdN *[]openapi_types.UUID `form:"inventory_items_id__n,omitempty" json:"inventory_items_id__n,omitempty"`
	LastUpdated       *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte    *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte    *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// ObjectTags Object Tags (slug)
	ObjectTags *[]string `form:"object_tags,omitempty" json:"object_tags,omitempty"`

	// ObjectTagsN Object Tags (slug)
	ObjectTagsN *[]string `form:"object_tags__n,omitempty" json:"object_tags__n,omitempty"`

	// ObjectTagsId Object Tags
	ObjectTagsId *[]openapi_types.UUID `form:"object_tags_id,omitempty" json:"object_tags_id,omitempty"`

	// ObjectTagsIdN Object Tags
	ObjectTagsIdN *[]openapi_types.UUID `form:"object_tags_id__n,omitempty" json:"object_tags_id__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Software Software
	Software *[]openapi_types.UUID `form:"software,omitempty" json:"software,omitempty"`

	// SoftwareN Software
	SoftwareN *[]openapi_types.UUID `form:"software__n,omitempty" json:"software__n,omitempty"`

	// SoftwareVersion Software (version)
	SoftwareVersion *[]string `form:"software_version,omitempty" json:"software_version,omitempty"`

	// SoftwareVersionN Software (version)
	SoftwareVersionN *[]string `form:"software_version__n,omitempty" json:"software_version__n,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdateJSONBody = []PatchedBulkWritableSoftwareImageLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdateJSONBody = []BulkWritableSoftwareImageLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareList.
type PluginsNautobotDeviceLifecycleMgmtSoftwareListParams struct {
	Alias      *[]string           `form:"alias,omitempty" json:"alias,omitempty"`
	AliasIc    *[]string           `form:"alias__ic,omitempty" json:"alias__ic,omitempty"`
	AliasIe    *[]string           `form:"alias__ie,omitempty" json:"alias__ie,omitempty"`
	AliasIew   *[]string           `form:"alias__iew,omitempty" json:"alias__iew,omitempty"`
	AliasIre   *[]string           `form:"alias__ire,omitempty" json:"alias__ire,omitempty"`
	AliasIsw   *[]string           `form:"alias__isw,omitempty" json:"alias__isw,omitempty"`
	AliasN     *[]string           `form:"alias__n,omitempty" json:"alias__n,omitempty"`
	AliasNic   *[]string           `form:"alias__nic,omitempty" json:"alias__nic,omitempty"`
	AliasNie   *[]string           `form:"alias__nie,omitempty" json:"alias__nie,omitempty"`
	AliasNiew  *[]string           `form:"alias__niew,omitempty" json:"alias__niew,omitempty"`
	AliasNire  *[]string           `form:"alias__nire,omitempty" json:"alias__nire,omitempty"`
	AliasNisw  *[]string           `form:"alias__nisw,omitempty" json:"alias__nisw,omitempty"`
	AliasNre   *[]string           `form:"alias__nre,omitempty" json:"alias__nre,omitempty"`
	AliasRe    *[]string           `form:"alias__re,omitempty" json:"alias__re,omitempty"`
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// DevicePlatform Device Platform (Slug)
	DevicePlatform *[]string `form:"device_platform,omitempty" json:"device_platform,omitempty"`

	// DevicePlatformN Device Platform (Slug)
	DevicePlatformN    *[]string             `form:"device_platform__n,omitempty" json:"device_platform__n,omitempty"`
	DocumentationUrl   *string               `form:"documentation_url,omitempty" json:"documentation_url,omitempty"`
	EndOfSupportAfter  *time.Time            `form:"end_of_support_after,omitempty" json:"end_of_support_after,omitempty"`
	EndOfSupportBefore *time.Time            `form:"end_of_support_before,omitempty" json:"end_of_support_before,omitempty"`
	Id                 *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc               *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe               *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew              *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre              *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw              *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic              *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie              *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew             *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire             *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw             *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre              *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe               *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated        *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte     *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte     *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit           *int  `form:"limit,omitempty" json:"limit,omitempty"`
	LongTermSupport *bool `form:"long_term_support,omitempty" json:"long_term_support,omitempty"`

	// Offset The initial index from which to return the results.
	Offset     *int  `form:"offset,omitempty" json:"offset,omitempty"`
	PreRelease *bool `form:"pre_release,omitempty" json:"pre_release,omitempty"`

	// Q Search
	Q                 *string    `form:"q,omitempty" json:"q,omitempty"`
	ReleaseDateAfter  *time.Time `form:"release_date_after,omitempty" json:"release_date_after,omitempty"`
	ReleaseDateBefore *time.Time `form:"release_date_before,omitempty" json:"release_date_before,omitempty"`
	Version           *[]string  `form:"version,omitempty" json:"version,omitempty"`
	VersionIc         *[]string  `form:"version__ic,omitempty" json:"version__ic,omitempty"`
	VersionIe         *[]string  `form:"version__ie,omitempty" json:"version__ie,omitempty"`
	VersionIew        *[]string  `form:"version__iew,omitempty" json:"version__iew,omitempty"`
	VersionIre        *[]string  `form:"version__ire,omitempty" json:"version__ire,omitempty"`
	VersionIsw        *[]string  `form:"version__isw,omitempty" json:"version__isw,omitempty"`
	VersionN          *[]string  `form:"version__n,omitempty" json:"version__n,omitempty"`
	VersionNic        *[]string  `form:"version__nic,omitempty" json:"version__nic,omitempty"`
	VersionNie        *[]string  `form:"version__nie,omitempty" json:"version__nie,omitempty"`
	VersionNiew       *[]string  `form:"version__niew,omitempty" json:"version__niew,omitempty"`
	VersionNire       *[]string  `form:"version__nire,omitempty" json:"version__nire,omitempty"`
	VersionNisw       *[]string  `form:"version__nisw,omitempty" json:"version__nisw,omitempty"`
	VersionNre        *[]string  `form:"version__nre,omitempty" json:"version__nre,omitempty"`
	VersionRe         *[]string  `form:"version__re,omitempty" json:"version__re,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdateJSONBody = []PatchedBulkWritableSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdateJSONBody = []BulkWritableSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareList.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// DeviceId Device ID
	DeviceId *string `form:"device_id,omitempty" json:"device_id,omitempty"`

	// DeviceName Device Name
	DeviceName *string `form:"device_name,omitempty" json:"device_name,omitempty"`

	// DeviceRoles Device Roles (slug)
	DeviceRoles *[]string `form:"device_roles,omitempty" json:"device_roles,omitempty"`

	// DeviceRolesN Device Roles (slug)
	DeviceRolesN *[]string `form:"device_roles__n,omitempty" json:"device_roles__n,omitempty"`

	// DeviceRolesId Device Roles
	DeviceRolesId *[]openapi_types.UUID `form:"device_roles_id,omitempty" json:"device_roles_id,omitempty"`

	// DeviceRolesIdN Device Roles
	DeviceRolesIdN *[]openapi_types.UUID `form:"device_roles_id__n,omitempty" json:"device_roles_id__n,omitempty"`

	// DeviceTypes Device Types (model)
	DeviceTypes *[]string `form:"device_types,omitempty" json:"device_types,omitempty"`

	// DeviceTypesN Device Types (model)
	DeviceTypesN *[]string `form:"device_types__n,omitempty" json:"device_types__n,omitempty"`

	// DeviceTypesId Device Types
	DeviceTypesId *[]openapi_types.UUID `form:"device_types_id,omitempty" json:"device_types_id,omitempty"`

	// DeviceTypesIdN Device Types
	DeviceTypesIdN *[]openapi_types.UUID `form:"device_types_id__n,omitempty" json:"device_types_id__n,omitempty"`

	// Devices Devices (name)
	Devices *[]string `form:"devices,omitempty" json:"devices,omitempty"`

	// DevicesN Devices (name)
	DevicesN *[]string `form:"devices__n,omitempty" json:"devices__n,omitempty"`

	// DevicesId Devices
	DevicesId *[]openapi_types.UUID `form:"devices_id,omitempty" json:"devices_id,omitempty"`

	// DevicesIdN Devices
	DevicesIdN *[]openapi_types.UUID `form:"devices_id__n,omitempty" json:"devices_id__n,omitempty"`
	EndAfter   *time.Time            `form:"end_after,omitempty" json:"end_after,omitempty"`
	EndBefore  *time.Time            `form:"end_before,omitempty" json:"end_before,omitempty"`
	Id         *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc       *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe       *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew      *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre      *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw      *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN        *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic      *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie      *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew     *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire     *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw     *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre      *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe       *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// InventoryItemId InventoryItem ID
	InventoryItemId *string `form:"inventory_item_id,omitempty" json:"inventory_item_id,omitempty"`

	// InventoryItems Inventory Items (name)
	InventoryItems *[]string `form:"inventory_items,omitempty" json:"inventory_items,omitempty"`

	// InventoryItemsN Inventory Items (name)
	InventoryItemsN *[]string `form:"inventory_items__n,omitempty" json:"inventory_items__n,omitempty"`

	// InventoryItemsId Inventory Items
	InventoryItemsId *[]openapi_types.UUID `form:"inventory_items_id,omitempty" json:"inventory_items_id,omitempty"`

	// InventoryItemsIdN Inventory Items
	InventoryItemsIdN *[]openapi_types.UUID `form:"inventory_items_id__n,omitempty" json:"inventory_items_id__n,omitempty"`
	LastUpdated       *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte    *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte    *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// ObjectTags Object Tags (slug)
	ObjectTags *[]string `form:"object_tags,omitempty" json:"object_tags,omitempty"`

	// ObjectTagsN Object Tags (slug)
	ObjectTagsN *[]string `form:"object_tags__n,omitempty" json:"object_tags__n,omitempty"`

	// ObjectTagsId Object Tags
	ObjectTagsId *[]openapi_types.UUID `form:"object_tags_id,omitempty" json:"object_tags_id,omitempty"`

	// ObjectTagsIdN Object Tags
	ObjectTagsIdN *[]openapi_types.UUID `form:"object_tags_id__n,omitempty" json:"object_tags_id__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset    *int  `form:"offset,omitempty" json:"offset,omitempty"`
	Preferred *bool `form:"preferred,omitempty" json:"preferred,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Software Software
	Software *[]openapi_types.UUID `form:"software,omitempty" json:"software,omitempty"`

	// SoftwareN Software
	SoftwareN   *[]openapi_types.UUID `form:"software__n,omitempty" json:"software__n,omitempty"`
	StartAfter  *time.Time            `form:"start_after,omitempty" json:"start_after,omitempty"`
	StartBefore *time.Time            `form:"start_before,omitempty" json:"start_before,omitempty"`

	// Valid Currently valid
	Valid *bool `form:"valid,omitempty" json:"valid,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdateJSONBody = []PatchedBulkWritableValidatedSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdateJSONBody = []BulkWritableValidatedSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroyJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroy.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroyJSONBody = []BulkOperationRequest

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityListParams defines parameters for PluginsNautobotDeviceLifecycleMgmtVulnerabilityList.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityListParams struct {
	Created                *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte             *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte             *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Cve                    *openapi_types.UUID   `form:"cve,omitempty" json:"cve,omitempty"`
	CveN                   *openapi_types.UUID   `form:"cve__n,omitempty" json:"cve__n,omitempty"`
	CvePublishedDateGte    *openapi_types.Date   `form:"cve__published_date__gte,omitempty" json:"cve__published_date__gte,omitempty"`
	CvePublishedDateLte    *openapi_types.Date   `form:"cve__published_date__lte,omitempty" json:"cve__published_date__lte,omitempty"`
	CvePublishedDateAfter  *time.Time            `form:"cve__published_date_after,omitempty" json:"cve__published_date_after,omitempty"`
	CvePublishedDateBefore *time.Time            `form:"cve__published_date_before,omitempty" json:"cve__published_date_before,omitempty"`
	Device                 *openapi_types.UUID   `form:"device,omitempty" json:"device,omitempty"`
	DeviceN                *openapi_types.UUID   `form:"device__n,omitempty" json:"device__n,omitempty"`
	ExcludeStatus          *[]openapi_types.UUID `form:"exclude_status,omitempty" json:"exclude_status,omitempty"`
	ExcludeStatusN         *[]openapi_types.UUID `form:"exclude_status__n,omitempty" json:"exclude_status__n,omitempty"`
	Id                     *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc                   *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe                   *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew                  *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre                  *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw                  *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                    *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic                  *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie                  *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew                 *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire                 *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw                 *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre                  *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe                   *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	InventoryItem          *openapi_types.UUID   `form:"inventory_item,omitempty" json:"inventory_item,omitempty"`
	InventoryItemN         *openapi_types.UUID   `form:"inventory_item__n,omitempty" json:"inventory_item__n,omitempty"`
	LastUpdated            *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte         *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte         *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q         *string               `form:"q,omitempty" json:"q,omitempty"`
	Software  *openapi_types.UUID   `form:"software,omitempty" json:"software,omitempty"`
	SoftwareN *openapi_types.UUID   `form:"software__n,omitempty" json:"software__n,omitempty"`
	Status    *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN   *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag       *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN      *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdate.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdateJSONBody = []PatchedBulkWritableVulnerabilityLCMRequest

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdateJSONBody defines parameters for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdate.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdateJSONBody = []BulkWritableVulnerabilityLCMRequest

// SwaggerJsonRetrieveParams defines parameters for SwaggerJsonRetrieve.
type SwaggerJsonRetrieveParams struct {
	Lang *SwaggerJsonRetrieveParamsLang `form:"lang,omitempty" json:"lang,omitempty"`
}

// SwaggerJsonRetrieveParamsLang defines parameters for SwaggerJsonRetrieve.
type SwaggerJsonRetrieveParamsLang string

// SwaggerYamlRetrieveParams defines parameters for SwaggerYamlRetrieve.
type SwaggerYamlRetrieveParams struct {
	Lang *SwaggerYamlRetrieveParamsLang `form:"lang,omitempty" json:"lang,omitempty"`
}

// SwaggerYamlRetrieveParamsLang defines parameters for SwaggerYamlRetrieve.
type SwaggerYamlRetrieveParamsLang string

// SwaggerRetrieveParams defines parameters for SwaggerRetrieve.
type SwaggerRetrieveParams struct {
	Format *SwaggerRetrieveParamsFormat `form:"format,omitempty" json:"format,omitempty"`
	Lang   *SwaggerRetrieveParamsLang   `form:"lang,omitempty" json:"lang,omitempty"`
}

// SwaggerRetrieveParamsFormat defines parameters for SwaggerRetrieve.
type SwaggerRetrieveParamsFormat string

// SwaggerRetrieveParamsLang defines parameters for SwaggerRetrieve.
type SwaggerRetrieveParamsLang string

// TenancyTenantGroupsBulkDestroyJSONBody defines parameters for TenancyTenantGroupsBulkDestroy.
type TenancyTenantGroupsBulkDestroyJSONBody = []BulkOperationRequest

// TenancyTenantGroupsListParams defines parameters for TenancyTenantGroupsList.
type TenancyTenantGroupsListParams struct {
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Id              *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc            *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe            *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew           *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre           *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw           *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN             *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic           *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie           *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew          *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire          *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw          *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre           *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe            *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated     *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte  *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte  *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Parent Tenant group group (slug)
	Parent *[]string `form:"parent,omitempty" json:"parent,omitempty"`

	// ParentN Tenant group group (slug)
	ParentN *[]string `form:"parent__n,omitempty" json:"parent__n,omitempty"`

	// ParentId Tenant group (ID)
	ParentId *[]openapi_types.UUID `form:"parent_id,omitempty" json:"parent_id,omitempty"`

	// ParentIdN Tenant group (ID)
	ParentIdN *[]openapi_types.UUID `form:"parent_id__n,omitempty" json:"parent_id__n,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// TenancyTenantGroupsBulkPartialUpdateJSONBody defines parameters for TenancyTenantGroupsBulkPartialUpdate.
type TenancyTenantGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableTenantGroupRequest

// TenancyTenantGroupsBulkUpdateJSONBody defines parameters for TenancyTenantGroupsBulkUpdate.
type TenancyTenantGroupsBulkUpdateJSONBody = []BulkWritableTenantGroupRequest

// TenancyTenantGroupsNotesListParams defines parameters for TenancyTenantGroupsNotesList.
type TenancyTenantGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// TenancyTenantsBulkDestroyJSONBody defines parameters for TenancyTenantsBulkDestroy.
type TenancyTenantsBulkDestroyJSONBody = []BulkOperationRequest

// TenancyTenantsListParams defines parameters for TenancyTenantsList.
type TenancyTenantsListParams struct {
	Created    *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Group Tenant group (slug)
	Group *[]openapi_types.UUID `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Tenant group (slug)
	GroupN *[]openapi_types.UUID `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Tenant group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Tenant group (ID)
	GroupIdN *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`

	// HasLocations Has locations
	HasLocations   *bool                 `form:"has_locations,omitempty" json:"has_locations,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Locations Locations (slugs and/or IDs)
	Locations *[]openapi_types.UUID `form:"locations,omitempty" json:"locations,omitempty"`

	// LocationsN Locations (slugs and/or IDs)
	LocationsN *[]openapi_types.UUID `form:"locations__n,omitempty" json:"locations__n,omitempty"`
	Name       *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc     *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe     *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew    *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre    *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw    *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN      *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic    *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie    *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew   *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire   *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw   *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre    *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe     *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
	Tag      *[]string `form:"tag,omitempty" json:"tag,omitempty"`
	TagN     *[]string `form:"tag__n,omitempty" json:"tag__n,omitempty"`
}

// TenancyTenantsBulkPartialUpdateJSONBody defines parameters for TenancyTenantsBulkPartialUpdate.
type TenancyTenantsBulkPartialUpdateJSONBody = []PatchedBulkWritableTenantRequest

// TenancyTenantsBulkUpdateJSONBody defines parameters for TenancyTenantsBulkUpdate.
type TenancyTenantsBulkUpdateJSONBody = []BulkWritableTenantRequest

// TenancyTenantsNotesListParams defines parameters for TenancyTenantsNotesList.
type TenancyTenantsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// UsersGroupsBulkDestroyJSONBody defines parameters for UsersGroupsBulkDestroy.
type UsersGroupsBulkDestroyJSONBody = []BulkOperationIntegerIDRequest

// UsersGroupsListParams defines parameters for UsersGroupsList.
type UsersGroupsListParams struct {
	Id    *[]int `form:"id,omitempty" json:"id,omitempty"`
	IdGt  *[]int `form:"id__gt,omitempty" json:"id__gt,omitempty"`
	IdGte *[]int `form:"id__gte,omitempty" json:"id__gte,omitempty"`
	IdLt  *[]int `form:"id__lt,omitempty" json:"id__lt,omitempty"`
	IdLte *[]int `form:"id__lte,omitempty" json:"id__lte,omitempty"`
	IdN   *[]int `form:"id__n,omitempty" json:"id__n,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`
}

// UsersGroupsBulkPartialUpdateJSONBody defines parameters for UsersGroupsBulkPartialUpdate.
type UsersGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableGroupRequest

// UsersGroupsBulkUpdateJSONBody defines parameters for UsersGroupsBulkUpdate.
type UsersGroupsBulkUpdateJSONBody = []BulkWritableGroupRequest

// UsersPermissionsBulkDestroyJSONBody defines parameters for UsersPermissionsBulkDestroy.
type UsersPermissionsBulkDestroyJSONBody = []BulkOperationRequest

// UsersPermissionsListParams defines parameters for UsersPermissionsList.
type UsersPermissionsListParams struct {
	Enabled *bool `form:"enabled,omitempty" json:"enabled,omitempty"`

	// Group Group (name)
	Group *[]string `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Group (name)
	GroupN *[]string `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Group
	GroupId *[]int `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Group
	GroupIdN *[]int                `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`
	Id       *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc     *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe     *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew    *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre    *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw    *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN      *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic    *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie    *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew   *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire   *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw   *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre    *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe     *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Limit Number of results to return per page.
	Limit        *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name         *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc       *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe       *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew      *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre      *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw      *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN        *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic      *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie      *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew     *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire     *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw     *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre      *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe       *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`
	ObjectTypes  *[]int    `form:"object_types,omitempty" json:"object_types,omitempty"`
	ObjectTypesN *[]int    `form:"object_types__n,omitempty" json:"object_types__n,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// User User (name)
	User *[]string `form:"user,omitempty" json:"user,omitempty"`

	// UserN User (name)
	UserN *[]string `form:"user__n,omitempty" json:"user__n,omitempty"`

	// UserId User
	UserId *[]openapi_types.UUID `form:"user_id,omitempty" json:"user_id,omitempty"`

	// UserIdN User
	UserIdN *[]openapi_types.UUID `form:"user_id__n,omitempty" json:"user_id__n,omitempty"`
}

// UsersPermissionsBulkPartialUpdateJSONBody defines parameters for UsersPermissionsBulkPartialUpdate.
type UsersPermissionsBulkPartialUpdateJSONBody = []PatchedBulkWritableObjectPermissionRequest

// UsersPermissionsBulkUpdateJSONBody defines parameters for UsersPermissionsBulkUpdate.
type UsersPermissionsBulkUpdateJSONBody = []BulkWritableObjectPermissionRequest

// UsersTokensBulkDestroyJSONBody defines parameters for UsersTokensBulkDestroy.
type UsersTokensBulkDestroyJSONBody = []BulkOperationRequest

// UsersTokensListParams defines parameters for UsersTokensList.
type UsersTokensListParams struct {
	Created    *[]time.Time          `form:"created,omitempty" json:"created,omitempty"`
	CreatedGt  *[]time.Time          `form:"created__gt,omitempty" json:"created__gt,omitempty"`
	CreatedGte *[]time.Time          `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLt  *[]time.Time          `form:"created__lt,omitempty" json:"created__lt,omitempty"`
	CreatedLte *[]time.Time          `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	CreatedN   *[]time.Time          `form:"created__n,omitempty" json:"created__n,omitempty"`
	Expires    *[]time.Time          `form:"expires,omitempty" json:"expires,omitempty"`
	ExpiresGt  *[]time.Time          `form:"expires__gt,omitempty" json:"expires__gt,omitempty"`
	ExpiresGte *[]time.Time          `form:"expires__gte,omitempty" json:"expires__gte,omitempty"`
	ExpiresLt  *[]time.Time          `form:"expires__lt,omitempty" json:"expires__lt,omitempty"`
	ExpiresLte *[]time.Time          `form:"expires__lte,omitempty" json:"expires__lte,omitempty"`
	ExpiresN   *[]time.Time          `form:"expires__n,omitempty" json:"expires__n,omitempty"`
	Id         *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc       *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe       *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew      *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre      *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw      *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN        *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic      *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie      *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew     *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire     *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw     *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre      *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe       *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	Key        *[]string             `form:"key,omitempty" json:"key,omitempty"`
	KeyIc      *[]string             `form:"key__ic,omitempty" json:"key__ic,omitempty"`
	KeyIe      *[]string             `form:"key__ie,omitempty" json:"key__ie,omitempty"`
	KeyIew     *[]string             `form:"key__iew,omitempty" json:"key__iew,omitempty"`
	KeyIre     *[]string             `form:"key__ire,omitempty" json:"key__ire,omitempty"`
	KeyIsw     *[]string             `form:"key__isw,omitempty" json:"key__isw,omitempty"`
	KeyN       *[]string             `form:"key__n,omitempty" json:"key__n,omitempty"`
	KeyNic     *[]string             `form:"key__nic,omitempty" json:"key__nic,omitempty"`
	KeyNie     *[]string             `form:"key__nie,omitempty" json:"key__nie,omitempty"`
	KeyNiew    *[]string             `form:"key__niew,omitempty" json:"key__niew,omitempty"`
	KeyNire    *[]string             `form:"key__nire,omitempty" json:"key__nire,omitempty"`
	KeyNisw    *[]string             `form:"key__nisw,omitempty" json:"key__nisw,omitempty"`
	KeyNre     *[]string             `form:"key__nre,omitempty" json:"key__nre,omitempty"`
	KeyRe      *[]string             `form:"key__re,omitempty" json:"key__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q            *string `form:"q,omitempty" json:"q,omitempty"`
	WriteEnabled *bool   `form:"write_enabled,omitempty" json:"write_enabled,omitempty"`
}

// UsersTokensBulkPartialUpdateJSONBody defines parameters for UsersTokensBulkPartialUpdate.
type UsersTokensBulkPartialUpdateJSONBody = []PatchedBulkWritableTokenRequest

// UsersTokensBulkUpdateJSONBody defines parameters for UsersTokensBulkUpdate.
type UsersTokensBulkUpdateJSONBody = []BulkWritableTokenRequest

// UsersUsersBulkDestroyJSONBody defines parameters for UsersUsersBulkDestroy.
type UsersUsersBulkDestroyJSONBody = []BulkOperationRequest

// UsersUsersListParams defines parameters for UsersUsersList.
type UsersUsersListParams struct {
	Email         *[]string `form:"email,omitempty" json:"email,omitempty"`
	EmailIc       *[]string `form:"email__ic,omitempty" json:"email__ic,omitempty"`
	EmailIe       *[]string `form:"email__ie,omitempty" json:"email__ie,omitempty"`
	EmailIew      *[]string `form:"email__iew,omitempty" json:"email__iew,omitempty"`
	EmailIre      *[]string `form:"email__ire,omitempty" json:"email__ire,omitempty"`
	EmailIsw      *[]string `form:"email__isw,omitempty" json:"email__isw,omitempty"`
	EmailN        *[]string `form:"email__n,omitempty" json:"email__n,omitempty"`
	EmailNic      *[]string `form:"email__nic,omitempty" json:"email__nic,omitempty"`
	EmailNie      *[]string `form:"email__nie,omitempty" json:"email__nie,omitempty"`
	EmailNiew     *[]string `form:"email__niew,omitempty" json:"email__niew,omitempty"`
	EmailNire     *[]string `form:"email__nire,omitempty" json:"email__nire,omitempty"`
	EmailNisw     *[]string `form:"email__nisw,omitempty" json:"email__nisw,omitempty"`
	EmailNre      *[]string `form:"email__nre,omitempty" json:"email__nre,omitempty"`
	EmailRe       *[]string `form:"email__re,omitempty" json:"email__re,omitempty"`
	FirstName     *[]string `form:"first_name,omitempty" json:"first_name,omitempty"`
	FirstNameIc   *[]string `form:"first_name__ic,omitempty" json:"first_name__ic,omitempty"`
	FirstNameIe   *[]string `form:"first_name__ie,omitempty" json:"first_name__ie,omitempty"`
	FirstNameIew  *[]string `form:"first_name__iew,omitempty" json:"first_name__iew,omitempty"`
	FirstNameIre  *[]string `form:"first_name__ire,omitempty" json:"first_name__ire,omitempty"`
	FirstNameIsw  *[]string `form:"first_name__isw,omitempty" json:"first_name__isw,omitempty"`
	FirstNameN    *[]string `form:"first_name__n,omitempty" json:"first_name__n,omitempty"`
	FirstNameNic  *[]string `form:"first_name__nic,omitempty" json:"first_name__nic,omitempty"`
	FirstNameNie  *[]string `form:"first_name__nie,omitempty" json:"first_name__nie,omitempty"`
	FirstNameNiew *[]string `form:"first_name__niew,omitempty" json:"first_name__niew,omitempty"`
	FirstNameNire *[]string `form:"first_name__nire,omitempty" json:"first_name__nire,omitempty"`
	FirstNameNisw *[]string `form:"first_name__nisw,omitempty" json:"first_name__nisw,omitempty"`
	FirstNameNre  *[]string `form:"first_name__nre,omitempty" json:"first_name__nre,omitempty"`
	FirstNameRe   *[]string `form:"first_name__re,omitempty" json:"first_name__re,omitempty"`

	// Group Group (name)
	Group *[]string `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Group (name)
	GroupN *[]string `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Group
	GroupId *[]int `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Group
	GroupIdN     *[]int                `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`
	Id           *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc         *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe         *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew        *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre        *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw        *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN          *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic        *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie        *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew       *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire       *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw       *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre        *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe         *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	IsActive     *bool                 `form:"is_active,omitempty" json:"is_active,omitempty"`
	IsStaff      *bool                 `form:"is_staff,omitempty" json:"is_staff,omitempty"`
	LastName     *[]string             `form:"last_name,omitempty" json:"last_name,omitempty"`
	LastNameIc   *[]string             `form:"last_name__ic,omitempty" json:"last_name__ic,omitempty"`
	LastNameIe   *[]string             `form:"last_name__ie,omitempty" json:"last_name__ie,omitempty"`
	LastNameIew  *[]string             `form:"last_name__iew,omitempty" json:"last_name__iew,omitempty"`
	LastNameIre  *[]string             `form:"last_name__ire,omitempty" json:"last_name__ire,omitempty"`
	LastNameIsw  *[]string             `form:"last_name__isw,omitempty" json:"last_name__isw,omitempty"`
	LastNameN    *[]string             `form:"last_name__n,omitempty" json:"last_name__n,omitempty"`
	LastNameNic  *[]string             `form:"last_name__nic,omitempty" json:"last_name__nic,omitempty"`
	LastNameNie  *[]string             `form:"last_name__nie,omitempty" json:"last_name__nie,omitempty"`
	LastNameNiew *[]string             `form:"last_name__niew,omitempty" json:"last_name__niew,omitempty"`
	LastNameNire *[]string             `form:"last_name__nire,omitempty" json:"last_name__nire,omitempty"`
	LastNameNisw *[]string             `form:"last_name__nisw,omitempty" json:"last_name__nisw,omitempty"`
	LastNameNre  *[]string             `form:"last_name__nre,omitempty" json:"last_name__nre,omitempty"`
	LastNameRe   *[]string             `form:"last_name__re,omitempty" json:"last_name__re,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q            *string   `form:"q,omitempty" json:"q,omitempty"`
	Username     *[]string `form:"username,omitempty" json:"username,omitempty"`
	UsernameIc   *[]string `form:"username__ic,omitempty" json:"username__ic,omitempty"`
	UsernameIe   *[]string `form:"username__ie,omitempty" json:"username__ie,omitempty"`
	UsernameIew  *[]string `form:"username__iew,omitempty" json:"username__iew,omitempty"`
	UsernameIre  *[]string `form:"username__ire,omitempty" json:"username__ire,omitempty"`
	UsernameIsw  *[]string `form:"username__isw,omitempty" json:"username__isw,omitempty"`
	UsernameN    *[]string `form:"username__n,omitempty" json:"username__n,omitempty"`
	UsernameNic  *[]string `form:"username__nic,omitempty" json:"username__nic,omitempty"`
	UsernameNie  *[]string `form:"username__nie,omitempty" json:"username__nie,omitempty"`
	UsernameNiew *[]string `form:"username__niew,omitempty" json:"username__niew,omitempty"`
	UsernameNire *[]string `form:"username__nire,omitempty" json:"username__nire,omitempty"`
	UsernameNisw *[]string `form:"username__nisw,omitempty" json:"username__nisw,omitempty"`
	UsernameNre  *[]string `form:"username__nre,omitempty" json:"username__nre,omitempty"`
	UsernameRe   *[]string `form:"username__re,omitempty" json:"username__re,omitempty"`
}

// UsersUsersBulkPartialUpdateJSONBody defines parameters for UsersUsersBulkPartialUpdate.
type UsersUsersBulkPartialUpdateJSONBody = []PatchedBulkWritableUserRequest

// UsersUsersBulkUpdateJSONBody defines parameters for UsersUsersBulkUpdate.
type UsersUsersBulkUpdateJSONBody = []BulkWritableUserRequest

// VirtualizationClusterGroupsBulkDestroyJSONBody defines parameters for VirtualizationClusterGroupsBulkDestroy.
type VirtualizationClusterGroupsBulkDestroyJSONBody = []BulkOperationRequest

// VirtualizationClusterGroupsListParams defines parameters for VirtualizationClusterGroupsList.
type VirtualizationClusterGroupsListParams struct {
	// Clusters Clusters (name or ID)
	Clusters *[]openapi_types.UUID `form:"clusters,omitempty" json:"clusters,omitempty"`

	// ClustersN Clusters (name or ID)
	ClustersN       *[]openapi_types.UUID `form:"clusters__n,omitempty" json:"clusters__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// HasClusters Has clusters
	HasClusters    *bool                 `form:"has_clusters,omitempty" json:"has_clusters,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// VirtualizationClusterGroupsBulkPartialUpdateJSONBody defines parameters for VirtualizationClusterGroupsBulkPartialUpdate.
type VirtualizationClusterGroupsBulkPartialUpdateJSONBody = []PatchedBulkWritableClusterGroupRequest

// VirtualizationClusterGroupsBulkUpdateJSONBody defines parameters for VirtualizationClusterGroupsBulkUpdate.
type VirtualizationClusterGroupsBulkUpdateJSONBody = []BulkWritableClusterGroupRequest

// VirtualizationClusterGroupsNotesListParams defines parameters for VirtualizationClusterGroupsNotesList.
type VirtualizationClusterGroupsNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// VirtualizationClusterTypesBulkDestroyJSONBody defines parameters for VirtualizationClusterTypesBulkDestroy.
type VirtualizationClusterTypesBulkDestroyJSONBody = []BulkOperationRequest

// VirtualizationClusterTypesListParams defines parameters for VirtualizationClusterTypesList.
type VirtualizationClusterTypesListParams struct {
	// Clusters Clusters (name or ID)
	Clusters *[]openapi_types.UUID `form:"clusters,omitempty" json:"clusters,omitempty"`

	// ClustersN Clusters (name or ID)
	ClustersN       *[]openapi_types.UUID `form:"clusters__n,omitempty" json:"clusters__n,omitempty"`
	Created         *openapi_types.Date   `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte      *openapi_types.Date   `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte      *openapi_types.Date   `form:"created__lte,omitempty" json:"created__lte,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`

	// HasClusters Has clusters
	HasClusters    *bool                 `form:"has_clusters,omitempty" json:"has_clusters,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated    *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit    *int      `form:"limit,omitempty" json:"limit,omitempty"`
	Name     *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc   *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe   *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew  *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre  *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw  *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN    *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic  *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie  *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre  *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe   *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q        *string   `form:"q,omitempty" json:"q,omitempty"`
	Slug     *[]string `form:"slug,omitempty" json:"slug,omitempty"`
	SlugIc   *[]string `form:"slug__ic,omitempty" json:"slug__ic,omitempty"`
	SlugIe   *[]string `form:"slug__ie,omitempty" json:"slug__ie,omitempty"`
	SlugIew  *[]string `form:"slug__iew,omitempty" json:"slug__iew,omitempty"`
	SlugIre  *[]string `form:"slug__ire,omitempty" json:"slug__ire,omitempty"`
	SlugIsw  *[]string `form:"slug__isw,omitempty" json:"slug__isw,omitempty"`
	SlugN    *[]string `form:"slug__n,omitempty" json:"slug__n,omitempty"`
	SlugNic  *[]string `form:"slug__nic,omitempty" json:"slug__nic,omitempty"`
	SlugNie  *[]string `form:"slug__nie,omitempty" json:"slug__nie,omitempty"`
	SlugNiew *[]string `form:"slug__niew,omitempty" json:"slug__niew,omitempty"`
	SlugNire *[]string `form:"slug__nire,omitempty" json:"slug__nire,omitempty"`
	SlugNisw *[]string `form:"slug__nisw,omitempty" json:"slug__nisw,omitempty"`
	SlugNre  *[]string `form:"slug__nre,omitempty" json:"slug__nre,omitempty"`
	SlugRe   *[]string `form:"slug__re,omitempty" json:"slug__re,omitempty"`
}

// VirtualizationClusterTypesBulkPartialUpdateJSONBody defines parameters for VirtualizationClusterTypesBulkPartialUpdate.
type VirtualizationClusterTypesBulkPartialUpdateJSONBody = []PatchedBulkWritableClusterTypeRequest

// VirtualizationClusterTypesBulkUpdateJSONBody defines parameters for VirtualizationClusterTypesBulkUpdate.
type VirtualizationClusterTypesBulkUpdateJSONBody = []BulkWritableClusterTypeRequest

// VirtualizationClusterTypesNotesListParams defines parameters for VirtualizationClusterTypesNotesList.
type VirtualizationClusterTypesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// VirtualizationClustersBulkDestroyJSONBody defines parameters for VirtualizationClustersBulkDestroy.
type VirtualizationClustersBulkDestroyJSONBody = []BulkOperationRequest

// VirtualizationClustersListParams defines parameters for VirtualizationClustersList.
type VirtualizationClustersListParams struct {
	Comments     *[]string           `form:"comments,omitempty" json:"comments,omitempty"`
	CommentsIc   *[]string           `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`
	CommentsIe   *[]string           `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`
	CommentsIew  *[]string           `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`
	CommentsIre  *[]string           `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`
	CommentsIsw  *[]string           `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`
	CommentsN    *[]string           `form:"comments__n,omitempty" json:"comments__n,omitempty"`
	CommentsNic  *[]string           `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`
	CommentsNie  *[]string           `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`
	CommentsNiew *[]string           `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`
	CommentsNire *[]string           `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`
	CommentsNisw *[]string           `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`
	CommentsNre  *[]string           `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`
	CommentsRe   *[]string           `form:"comments__re,omitempty" json:"comments__re,omitempty"`
	Created      *openapi_types.Date `form:"created,omitempty" json:"created,omitempty"`
	CreatedGte   *openapi_types.Date `form:"created__gte,omitempty" json:"created__gte,omitempty"`
	CreatedLte   *openapi_types.Date `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Devices Devices (name or ID)
	Devices *[]openapi_types.UUID `form:"devices,omitempty" json:"devices,omitempty"`

	// DevicesN Devices (name or ID)
	DevicesN *[]openapi_types.UUID `form:"devices__n,omitempty" json:"devices__n,omitempty"`

	// Group Parent group (slug)
	Group *[]string `form:"group,omitempty" json:"group,omitempty"`

	// GroupN Parent group (slug)
	GroupN *[]string `form:"group__n,omitempty" json:"group__n,omitempty"`

	// GroupId Parent group (ID)
	GroupId *[]openapi_types.UUID `form:"group_id,omitempty" json:"group_id,omitempty"`

	// GroupIdN Parent group (ID)
	GroupIdN *[]openapi_types.UUID `form:"group_id__n,omitempty" json:"group_id__n,omitempty"`

	// HasDevices Has devices
	HasDevices *bool `form:"has_devices,omitempty" json:"has_devices,omitempty"`

	// HasVirtualMachines Has virtual machines
	HasVirtualMachines *bool                 `form:"has_virtual_machines,omitempty" json:"has_virtual_machines,omitempty"`
	Id                 *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc               *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe               *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew              *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre              *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw              *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN                *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic              *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie              *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew             *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire             *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw             *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre              *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe               *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`
	LastUpdated        *time.Time            `form:"last_updated,omitempty" json:"last_updated,omitempty"`
	LastUpdatedGte     *time.Time            `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`
	LastUpdatedLte     *time.Time            `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Location Location (slug or ID)
	Location *[]openapi_types.UUID `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *[]openapi_types.UUID `form:"location__n,omitempty" json:"location__n,omitempty"`
	Name      *[]string             `form:"name,omitempty" json:"name,omitempty"`
	NameIc    *[]string             `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe    *[]string             `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew   *[]string             `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre   *[]string             `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw   *[]string             `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN     *[]string             `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic   *[]string             `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie   *[]string             `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew  *[]string             `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire  *[]string             `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw  *[]string             `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre   *[]string             `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe    *[]string             `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug or ID)
	Region *[]openapi_types.UUID `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug or ID)
	RegionN *[]openapi_types.UUID `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID) (deprecated, use "region" filter instead)
	RegionId *[]openapi_types.UUID `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID) (deprecated, use "region" filter instead)
	RegionIdN *[]openapi_types.UUID `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Site Site (slug or ID)
	Site *[]openapi_types.UUID `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug or ID)
	SiteN *[]openapi_types.UUID `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID) (deprecated, use "site" filter instead)
	SiteId *[]openapi_types.UUID `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID) (deprecated, use "site" filter instead)
	SiteIdN *[]openapi_types.UUID `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *[]openapi_types.UUID `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *[]openapi_types.UUID `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *[]openapi_types.UUID `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *[]openapi_types.UUID `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *[]openapi_types.UUID `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *[]openapi_types.UUID `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *[]openapi_types.UUID `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *[]openapi_types.UUID `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// Type Cluster type (slug)
	Type *[]string `form:"type,omitempty" json:"type,omitempty"`

	// TypeN Cluster type (slug)
	TypeN *[]string `form:"type__n,omitempty" json:"type__n,omitempty"`

	// TypeId Cluster type (ID)
	TypeId *[]openapi_types.UUID `form:"type_id,omitempty" json:"type_id,omitempty"`

	// TypeIdN Cluster type (ID)
	TypeIdN *[]openapi_types.UUID `form:"type_id__n,omitempty" json:"type_id__n,omitempty"`

	// VirtualMachines Virtual machines (name or ID)
	VirtualMachines *[]openapi_types.UUID `form:"virtual_machines,omitempty" json:"virtual_machines,omitempty"`

	// VirtualMachinesN Virtual machines (name or ID)
	VirtualMachinesN *[]openapi_types.UUID `form:"virtual_machines__n,omitempty" json:"virtual_machines__n,omitempty"`
}

// VirtualizationClustersBulkPartialUpdateJSONBody defines parameters for VirtualizationClustersBulkPartialUpdate.
type VirtualizationClustersBulkPartialUpdateJSONBody = []PatchedBulkWritableClusterRequest

// VirtualizationClustersBulkUpdateJSONBody defines parameters for VirtualizationClustersBulkUpdate.
type VirtualizationClustersBulkUpdateJSONBody = []BulkWritableClusterRequest

// VirtualizationClustersNotesListParams defines parameters for VirtualizationClustersNotesList.
type VirtualizationClustersNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// VirtualizationInterfacesBulkDestroyJSONBody defines parameters for VirtualizationInterfacesBulkDestroy.
type VirtualizationInterfacesBulkDestroyJSONBody = []BulkOperationRequest

// VirtualizationInterfacesListParams defines parameters for VirtualizationInterfacesList.
type VirtualizationInterfacesListParams struct {
	// Bridge Bridge interface (name or ID)
	Bridge *[]openapi_types.UUID `form:"bridge,omitempty" json:"bridge,omitempty"`

	// BridgeN Bridge interface (name or ID)
	BridgeN *[]openapi_types.UUID `form:"bridge__n,omitempty" json:"bridge__n,omitempty"`

	// BridgedInterfaces Bridged interfaces (name or ID)
	BridgedInterfaces *[]openapi_types.UUID `form:"bridged_interfaces,omitempty" json:"bridged_interfaces,omitempty"`

	// BridgedInterfacesN Bridged interfaces (name or ID)
	BridgedInterfacesN *[]openapi_types.UUID `form:"bridged_interfaces__n,omitempty" json:"bridged_interfaces__n,omitempty"`

	// ChildInterfaces Child interfaces (name or ID)
	ChildInterfaces *[]openapi_types.UUID `form:"child_interfaces,omitempty" json:"child_interfaces,omitempty"`

	// ChildInterfacesN Child interfaces (name or ID)
	ChildInterfacesN *[]openapi_types.UUID `form:"child_interfaces__n,omitempty" json:"child_interfaces__n,omitempty"`

	// Cluster Cluster
	Cluster *[]string `form:"cluster,omitempty" json:"cluster,omitempty"`

	// ClusterN Cluster
	ClusterN *[]string `form:"cluster__n,omitempty" json:"cluster__n,omitempty"`

	// ClusterId Cluster (ID)
	ClusterId *[]openapi_types.UUID `form:"cluster_id,omitempty" json:"cluster_id,omitempty"`

	// ClusterIdN Cluster (ID)
	ClusterIdN      *[]openapi_types.UUID `form:"cluster_id__n,omitempty" json:"cluster_id__n,omitempty"`
	Description     *[]string             `form:"description,omitempty" json:"description,omitempty"`
	DescriptionIc   *[]string             `form:"description__ic,omitempty" json:"description__ic,omitempty"`
	DescriptionIe   *[]string             `form:"description__ie,omitempty" json:"description__ie,omitempty"`
	DescriptionIew  *[]string             `form:"description__iew,omitempty" json:"description__iew,omitempty"`
	DescriptionIre  *[]string             `form:"description__ire,omitempty" json:"description__ire,omitempty"`
	DescriptionIsw  *[]string             `form:"description__isw,omitempty" json:"description__isw,omitempty"`
	DescriptionN    *[]string             `form:"description__n,omitempty" json:"description__n,omitempty"`
	DescriptionNic  *[]string             `form:"description__nic,omitempty" json:"description__nic,omitempty"`
	DescriptionNie  *[]string             `form:"description__nie,omitempty" json:"description__nie,omitempty"`
	DescriptionNiew *[]string             `form:"description__niew,omitempty" json:"description__niew,omitempty"`
	DescriptionNire *[]string             `form:"description__nire,omitempty" json:"description__nire,omitempty"`
	DescriptionNisw *[]string             `form:"description__nisw,omitempty" json:"description__nisw,omitempty"`
	DescriptionNre  *[]string             `form:"description__nre,omitempty" json:"description__nre,omitempty"`
	DescriptionRe   *[]string             `form:"description__re,omitempty" json:"description__re,omitempty"`
	Enabled         *bool                 `form:"enabled,omitempty" json:"enabled,omitempty"`

	// HasBridgedInterfaces Has Bridged Interfaces
	HasBridgedInterfaces *bool `form:"has_bridged_interfaces,omitempty" json:"has_bridged_interfaces,omitempty"`

	// HasChildInterfaces Has child interfaces
	HasChildInterfaces *bool `form:"has_child_interfaces,omitempty" json:"has_child_interfaces,omitempty"`

	// HasIpAddresses Has IP addresses
	HasIpAddresses *bool `form:"has_ip_addresses,omitempty" json:"has_ip_addresses,omitempty"`

	// HasTaggedVlans Has Tagged VLANs
	HasTaggedVlans *bool                 `form:"has_tagged_vlans,omitempty" json:"has_tagged_vlans,omitempty"`
	Id             *[]openapi_types.UUID `form:"id,omitempty" json:"id,omitempty"`
	IdIc           *[]openapi_types.UUID `form:"id__ic,omitempty" json:"id__ic,omitempty"`
	IdIe           *[]openapi_types.UUID `form:"id__ie,omitempty" json:"id__ie,omitempty"`
	IdIew          *[]openapi_types.UUID `form:"id__iew,omitempty" json:"id__iew,omitempty"`
	IdIre          *[]openapi_types.UUID `form:"id__ire,omitempty" json:"id__ire,omitempty"`
	IdIsw          *[]openapi_types.UUID `form:"id__isw,omitempty" json:"id__isw,omitempty"`
	IdN            *[]openapi_types.UUID `form:"id__n,omitempty" json:"id__n,omitempty"`
	IdNic          *[]openapi_types.UUID `form:"id__nic,omitempty" json:"id__nic,omitempty"`
	IdNie          *[]openapi_types.UUID `form:"id__nie,omitempty" json:"id__nie,omitempty"`
	IdNiew         *[]openapi_types.UUID `form:"id__niew,omitempty" json:"id__niew,omitempty"`
	IdNire         *[]openapi_types.UUID `form:"id__nire,omitempty" json:"id__nire,omitempty"`
	IdNisw         *[]openapi_types.UUID `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`
	IdNre          *[]openapi_types.UUID `form:"id__nre,omitempty" json:"id__nre,omitempty"`
	IdRe           *[]openapi_types.UUID `form:"id__re,omitempty" json:"id__re,omitempty"`

	// IpAddresses IP addresses (address or ID)
	IpAddresses *[]string `form:"ip_addresses,omitempty" json:"ip_addresses,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// MacAddress MAC address
	MacAddress *[]string `form:"mac_address,omitempty" json:"mac_address,omitempty"`

	// MacAddressIc MAC address
	MacAddressIc *[]string `form:"mac_address__ic,omitempty" json:"mac_address__ic,omitempty"`

	// MacAddressIe MAC address
	MacAddressIe *[]string `form:"mac_address__ie,omitempty" json:"mac_address__ie,omitempty"`

	// MacAddressIew MAC address
	MacAddressIew *[]string `form:"mac_address__iew,omitempty" json:"mac_address__iew,omitempty"`

	// MacAddressIre MAC address
	MacAddressIre *[]string `form:"mac_address__ire,omitempty" json:"mac_address__ire,omitempty"`

	// MacAddressIsw MAC address
	MacAddressIsw *[]string `form:"mac_address__isw,omitempty" json:"mac_address__isw,omitempty"`

	// MacAddressN MAC address
	MacAddressN *[]string `form:"mac_address__n,omitempty" json:"mac_address__n,omitempty"`

	// MacAddressNic MAC address
	MacAddressNic *[]string `form:"mac_address__nic,omitempty" json:"mac_address__nic,omitempty"`

	// MacAddressNie MAC address
	MacAddressNie *[]string `form:"mac_address__nie,omitempty" json:"mac_address__nie,omitempty"`

	// MacAddressNiew MAC address
	MacAddressNiew *[]string `form:"mac_address__niew,omitempty" json:"mac_address__niew,omitempty"`

	// MacAddressNire MAC address
	MacAddressNire *[]string `form:"mac_address__nire,omitempty" json:"mac_address__nire,omitempty"`

	// MacAddressNisw MAC address
	MacAddressNisw *[]string `form:"mac_address__nisw,omitempty" json:"mac_address__nisw,omitempty"`

	// MacAddressNre MAC address
	MacAddressNre *[]string `form:"mac_address__nre,omitempty" json:"mac_address__nre,omitempty"`

	// MacAddressRe MAC address
	MacAddressRe *[]string `form:"mac_address__re,omitempty" json:"mac_address__re,omitempty"`
	Mode         *string   `form:"mode,omitempty" json:"mode,omitempty"`
	ModeN        *string   `form:"mode__n,omitempty" json:"mode__n,omitempty"`
	Mtu          *[]int    `form:"mtu,omitempty" json:"mtu,omitempty"`
	MtuGt        *[]int    `form:"mtu__gt,omitempty" json:"mtu__gt,omitempty"`
	MtuGte       *[]int    `form:"mtu__gte,omitempty" json:"mtu__gte,omitempty"`
	MtuLt        *[]int    `form:"mtu__lt,omitempty" json:"mtu__lt,omitempty"`
	MtuLte       *[]int    `form:"mtu__lte,omitempty" json:"mtu__lte,omitempty"`
	MtuN         *[]int    `form:"mtu__n,omitempty" json:"mtu__n,omitempty"`
	Name         *[]string `form:"name,omitempty" json:"name,omitempty"`
	NameIc       *[]string `form:"name__ic,omitempty" json:"name__ic,omitempty"`
	NameIe       *[]string `form:"name__ie,omitempty" json:"name__ie,omitempty"`
	NameIew      *[]string `form:"name__iew,omitempty" json:"name__iew,omitempty"`
	NameIre      *[]string `form:"name__ire,omitempty" json:"name__ire,omitempty"`
	NameIsw      *[]string `form:"name__isw,omitempty" json:"name__isw,omitempty"`
	NameN        *[]string `form:"name__n,omitempty" json:"name__n,omitempty"`
	NameNic      *[]string `form:"name__nic,omitempty" json:"name__nic,omitempty"`
	NameNie      *[]string `form:"name__nie,omitempty" json:"name__nie,omitempty"`
	NameNiew     *[]string `form:"name__niew,omitempty" json:"name__niew,omitempty"`
	NameNire     *[]string `form:"name__nire,omitempty" json:"name__nire,omitempty"`
	NameNisw     *[]string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`
	NameNre      *[]string `form:"name__nre,omitempty" json:"name__nre,omitempty"`
	NameRe       *[]string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// ParentInterface Parent interface (name or ID)
	ParentInterface *[]openapi_types.UUID `form:"parent_interface,omitempty" json:"parent_interface,omitempty"`

	// ParentInterfaceN Parent interface (name or ID)
	ParentInterfaceN *[]openapi_types.UUID `form:"parent_interface__n,omitempty" json:"parent_interface__n,omitempty"`

	// Q Search
	Q       *string               `form:"q,omitempty" json:"q,omitempty"`
	Status  *[]openapi_types.UUID `form:"status,omitempty" json:"status,omitempty"`
	StatusN *[]openapi_types.UUID `form:"status__n,omitempty" json:"status__n,omitempty"`
	Tag     *[]string             `form:"tag,omitempty" json:"tag,omitempty"`
	TagN    *[]string             `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// TaggedVlans Tagged VLANs (VID or ID)
	TaggedVlans *[]openapi_types.UUID `form:"tagged_vlans,omitempty" json:"tagged_vlans,omitempty"`

	// TaggedVlansN Tagged VLANs (VID or ID)
	TaggedVlansN *[]openapi_types.UUID `form:"tagged_vlans__n,omitempty" json:"tagged_vlans__n,omitempty"`

	// UntaggedVlan Untagged VLAN (VID or ID)
	UntaggedVlan *[]openapi_types.UUID `form:"untagged_vlan,omitempty" json:"untagged_vlan,omitempty"`

	// UntaggedVlanN Untagged VLAN (VID or ID)
	UntaggedVlanN *[]openapi_types.UUID `form:"untagged_vlan__n,omitempty" json:"untagged_vlan__n,omitempty"`

	// VirtualMachine Virtual machine
	VirtualMachine *[]string `form:"virtual_machine,omitempty" json:"virtual_machine,omitempty"`

	// VirtualMachineN Virtual machine
	VirtualMachineN *[]string `form:"virtual_machine__n,omitempty" json:"virtual_machine__n,omitempty"`

	// VirtualMachineId Virtual machine (ID)
	VirtualMachineId *[]openapi_types.UUID `form:"virtual_machine_id,omitempty" json:"virtual_machine_id,omitempty"`

	// VirtualMachineIdN Virtual machine (ID)
	VirtualMachineIdN *[]openapi_types.UUID `form:"virtual_machine_id__n,omitempty" json:"virtual_machine_id__n,omitempty"`
}

// VirtualizationInterfacesBulkPartialUpdateJSONBody defines parameters for VirtualizationInterfacesBulkPartialUpdate.
type VirtualizationInterfacesBulkPartialUpdateJSONBody = []PatchedBulkWritableVMInterfaceRequest

// VirtualizationInterfacesBulkUpdateJSONBody defines parameters for VirtualizationInterfacesBulkUpdate.
type VirtualizationInterfacesBulkUpdateJSONBody = []BulkWritableVMInterfaceRequest

// VirtualizationInterfacesNotesListParams defines parameters for VirtualizationInterfacesNotesList.
type VirtualizationInterfacesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// VirtualizationVirtualMachinesBulkDestroyJSONBody defines parameters for VirtualizationVirtualMachinesBulkDestroy.
type VirtualizationVirtualMachinesBulkDestroyJSONBody = []BulkOperationRequest

// VirtualizationVirtualMachinesListParams defines parameters for VirtualizationVirtualMachinesList.
type VirtualizationVirtualMachinesListParams struct {
	// Cluster cluster
	Cluster *string `form:"cluster,omitempty" json:"cluster,omitempty"`

	// ClusterN cluster__n
	ClusterN *string `form:"cluster__n,omitempty" json:"cluster__n,omitempty"`

	// ClusterGroup Cluster group (slug)
	ClusterGroup *string `form:"cluster_group,omitempty" json:"cluster_group,omitempty"`

	// ClusterGroupN Cluster group (slug)
	ClusterGroupN *string `form:"cluster_group__n,omitempty" json:"cluster_group__n,omitempty"`

	// ClusterGroupId Cluster group (ID)
	ClusterGroupId *string `form:"cluster_group_id,omitempty" json:"cluster_group_id,omitempty"`

	// ClusterGroupIdN Cluster group (ID)
	ClusterGroupIdN *string `form:"cluster_group_id__n,omitempty" json:"cluster_group_id__n,omitempty"`

	// ClusterId Cluster (ID)
	ClusterId *string `form:"cluster_id,omitempty" json:"cluster_id,omitempty"`

	// ClusterIdN Cluster (ID)
	ClusterIdN *string `form:"cluster_id__n,omitempty" json:"cluster_id__n,omitempty"`

	// ClusterType Cluster type (slug)
	ClusterType *string `form:"cluster_type,omitempty" json:"cluster_type,omitempty"`

	// ClusterTypeN Cluster type (slug)
	ClusterTypeN *string `form:"cluster_type__n,omitempty" json:"cluster_type__n,omitempty"`

	// ClusterTypeId Cluster type (ID)
	ClusterTypeId *string `form:"cluster_type_id,omitempty" json:"cluster_type_id,omitempty"`

	// ClusterTypeIdN Cluster type (ID)
	ClusterTypeIdN *string `form:"cluster_type_id__n,omitempty" json:"cluster_type_id__n,omitempty"`

	// Comments comments
	Comments *string `form:"comments,omitempty" json:"comments,omitempty"`

	// CommentsIc comments__ic
	CommentsIc *string `form:"comments__ic,omitempty" json:"comments__ic,omitempty"`

	// CommentsIe comments__ie
	CommentsIe *string `form:"comments__ie,omitempty" json:"comments__ie,omitempty"`

	// CommentsIew comments__iew
	CommentsIew *string `form:"comments__iew,omitempty" json:"comments__iew,omitempty"`

	// CommentsIre comments__ire
	CommentsIre *string `form:"comments__ire,omitempty" json:"comments__ire,omitempty"`

	// CommentsIsw comments__isw
	CommentsIsw *string `form:"comments__isw,omitempty" json:"comments__isw,omitempty"`

	// CommentsN comments__n
	CommentsN *string `form:"comments__n,omitempty" json:"comments__n,omitempty"`

	// CommentsNic comments__nic
	CommentsNic *string `form:"comments__nic,omitempty" json:"comments__nic,omitempty"`

	// CommentsNie comments__nie
	CommentsNie *string `form:"comments__nie,omitempty" json:"comments__nie,omitempty"`

	// CommentsNiew comments__niew
	CommentsNiew *string `form:"comments__niew,omitempty" json:"comments__niew,omitempty"`

	// CommentsNire comments__nire
	CommentsNire *string `form:"comments__nire,omitempty" json:"comments__nire,omitempty"`

	// CommentsNisw comments__nisw
	CommentsNisw *string `form:"comments__nisw,omitempty" json:"comments__nisw,omitempty"`

	// CommentsNre comments__nre
	CommentsNre *string `form:"comments__nre,omitempty" json:"comments__nre,omitempty"`

	// CommentsRe comments__re
	CommentsRe *string `form:"comments__re,omitempty" json:"comments__re,omitempty"`

	// Created created
	Created *string `form:"created,omitempty" json:"created,omitempty"`

	// CreatedGte created__gte
	CreatedGte *string `form:"created__gte,omitempty" json:"created__gte,omitempty"`

	// CreatedLte created__lte
	CreatedLte *string `form:"created__lte,omitempty" json:"created__lte,omitempty"`

	// Disk disk
	Disk *string `form:"disk,omitempty" json:"disk,omitempty"`

	// DiskGt disk__gt
	DiskGt *string `form:"disk__gt,omitempty" json:"disk__gt,omitempty"`

	// DiskGte disk__gte
	DiskGte *string `form:"disk__gte,omitempty" json:"disk__gte,omitempty"`

	// DiskLt disk__lt
	DiskLt *string `form:"disk__lt,omitempty" json:"disk__lt,omitempty"`

	// DiskLte disk__lte
	DiskLte *string `form:"disk__lte,omitempty" json:"disk__lte,omitempty"`

	// DiskN disk__n
	DiskN *string `form:"disk__n,omitempty" json:"disk__n,omitempty"`

	// HasInterfaces Has interfaces
	HasInterfaces *string `form:"has_interfaces,omitempty" json:"has_interfaces,omitempty"`

	// HasPrimaryIp Has a primary IP
	HasPrimaryIp *string `form:"has_primary_ip,omitempty" json:"has_primary_ip,omitempty"`

	// HasServices Has services
	HasServices *string `form:"has_services,omitempty" json:"has_services,omitempty"`

	// Id id
	Id *string `form:"id,omitempty" json:"id,omitempty"`

	// IdIc id__ic
	IdIc *string `form:"id__ic,omitempty" json:"id__ic,omitempty"`

	// IdIe id__ie
	IdIe *string `form:"id__ie,omitempty" json:"id__ie,omitempty"`

	// IdIew id__iew
	IdIew *string `form:"id__iew,omitempty" json:"id__iew,omitempty"`

	// IdIre id__ire
	IdIre *string `form:"id__ire,omitempty" json:"id__ire,omitempty"`

	// IdIsw id__isw
	IdIsw *string `form:"id__isw,omitempty" json:"id__isw,omitempty"`

	// IdN id__n
	IdN *string `form:"id__n,omitempty" json:"id__n,omitempty"`

	// IdNic id__nic
	IdNic *string `form:"id__nic,omitempty" json:"id__nic,omitempty"`

	// IdNie id__nie
	IdNie *string `form:"id__nie,omitempty" json:"id__nie,omitempty"`

	// IdNiew id__niew
	IdNiew *string `form:"id__niew,omitempty" json:"id__niew,omitempty"`

	// IdNire id__nire
	IdNire *string `form:"id__nire,omitempty" json:"id__nire,omitempty"`

	// IdNisw id__nisw
	IdNisw *string `form:"id__nisw,omitempty" json:"id__nisw,omitempty"`

	// IdNre id__nre
	IdNre *string `form:"id__nre,omitempty" json:"id__nre,omitempty"`

	// IdRe id__re
	IdRe *string `form:"id__re,omitempty" json:"id__re,omitempty"`

	// Interfaces Interfaces (name or ID)
	Interfaces *string `form:"interfaces,omitempty" json:"interfaces,omitempty"`

	// InterfacesN Interfaces (name or ID)
	InterfacesN *string `form:"interfaces__n,omitempty" json:"interfaces__n,omitempty"`

	// LastUpdated last_updated
	LastUpdated *string `form:"last_updated,omitempty" json:"last_updated,omitempty"`

	// LastUpdatedGte last_updated__gte
	LastUpdatedGte *string `form:"last_updated__gte,omitempty" json:"last_updated__gte,omitempty"`

	// LastUpdatedLte last_updated__lte
	LastUpdatedLte *string `form:"last_updated__lte,omitempty" json:"last_updated__lte,omitempty"`

	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// LocalContextData Has local config context data
	LocalContextData *string `form:"local_context_data,omitempty" json:"local_context_data,omitempty"`

	// LocalContextSchema Schema (slug)
	LocalContextSchema *string `form:"local_context_schema,omitempty" json:"local_context_schema,omitempty"`

	// LocalContextSchemaN Schema (slug)
	LocalContextSchemaN *string `form:"local_context_schema__n,omitempty" json:"local_context_schema__n,omitempty"`

	// LocalContextSchemaId Schema (ID)
	LocalContextSchemaId *string `form:"local_context_schema_id,omitempty" json:"local_context_schema_id,omitempty"`

	// LocalContextSchemaIdN Schema (ID)
	LocalContextSchemaIdN *string `form:"local_context_schema_id__n,omitempty" json:"local_context_schema_id__n,omitempty"`

	// Location Location (slug or ID)
	Location *string `form:"location,omitempty" json:"location,omitempty"`

	// LocationN Location (slug or ID)
	LocationN *string `form:"location__n,omitempty" json:"location__n,omitempty"`

	// MacAddress MAC address
	MacAddress *string `form:"mac_address,omitempty" json:"mac_address,omitempty"`

	// MacAddressIc MAC address
	MacAddressIc *string `form:"mac_address__ic,omitempty" json:"mac_address__ic,omitempty"`

	// MacAddressIe MAC address
	MacAddressIe *string `form:"mac_address__ie,omitempty" json:"mac_address__ie,omitempty"`

	// MacAddressIew MAC address
	MacAddressIew *string `form:"mac_address__iew,omitempty" json:"mac_address__iew,omitempty"`

	// MacAddressIre MAC address
	MacAddressIre *string `form:"mac_address__ire,omitempty" json:"mac_address__ire,omitempty"`

	// MacAddressIsw MAC address
	MacAddressIsw *string `form:"mac_address__isw,omitempty" json:"mac_address__isw,omitempty"`

	// MacAddressN MAC address
	MacAddressN *string `form:"mac_address__n,omitempty" json:"mac_address__n,omitempty"`

	// MacAddressNic MAC address
	MacAddressNic *string `form:"mac_address__nic,omitempty" json:"mac_address__nic,omitempty"`

	// MacAddressNie MAC address
	MacAddressNie *string `form:"mac_address__nie,omitempty" json:"mac_address__nie,omitempty"`

	// MacAddressNiew MAC address
	MacAddressNiew *string `form:"mac_address__niew,omitempty" json:"mac_address__niew,omitempty"`

	// MacAddressNire MAC address
	MacAddressNire *string `form:"mac_address__nire,omitempty" json:"mac_address__nire,omitempty"`

	// MacAddressNisw MAC address
	MacAddressNisw *string `form:"mac_address__nisw,omitempty" json:"mac_address__nisw,omitempty"`

	// MacAddressNre MAC address
	MacAddressNre *string `form:"mac_address__nre,omitempty" json:"mac_address__nre,omitempty"`

	// MacAddressRe MAC address
	MacAddressRe *string `form:"mac_address__re,omitempty" json:"mac_address__re,omitempty"`

	// Memory memory
	Memory *string `form:"memory,omitempty" json:"memory,omitempty"`

	// MemoryGt memory__gt
	MemoryGt *string `form:"memory__gt,omitempty" json:"memory__gt,omitempty"`

	// MemoryGte memory__gte
	MemoryGte *string `form:"memory__gte,omitempty" json:"memory__gte,omitempty"`

	// MemoryLt memory__lt
	MemoryLt *string `form:"memory__lt,omitempty" json:"memory__lt,omitempty"`

	// MemoryLte memory__lte
	MemoryLte *string `form:"memory__lte,omitempty" json:"memory__lte,omitempty"`

	// MemoryN memory__n
	MemoryN *string `form:"memory__n,omitempty" json:"memory__n,omitempty"`

	// Name name
	Name *string `form:"name,omitempty" json:"name,omitempty"`

	// NameIc name__ic
	NameIc *string `form:"name__ic,omitempty" json:"name__ic,omitempty"`

	// NameIe name__ie
	NameIe *string `form:"name__ie,omitempty" json:"name__ie,omitempty"`

	// NameIew name__iew
	NameIew *string `form:"name__iew,omitempty" json:"name__iew,omitempty"`

	// NameIre name__ire
	NameIre *string `form:"name__ire,omitempty" json:"name__ire,omitempty"`

	// NameIsw name__isw
	NameIsw *string `form:"name__isw,omitempty" json:"name__isw,omitempty"`

	// NameN name__n
	NameN *string `form:"name__n,omitempty" json:"name__n,omitempty"`

	// NameNic name__nic
	NameNic *string `form:"name__nic,omitempty" json:"name__nic,omitempty"`

	// NameNie name__nie
	NameNie *string `form:"name__nie,omitempty" json:"name__nie,omitempty"`

	// NameNiew name__niew
	NameNiew *string `form:"name__niew,omitempty" json:"name__niew,omitempty"`

	// NameNire name__nire
	NameNire *string `form:"name__nire,omitempty" json:"name__nire,omitempty"`

	// NameNisw name__nisw
	NameNisw *string `form:"name__nisw,omitempty" json:"name__nisw,omitempty"`

	// NameNre name__nre
	NameNre *string `form:"name__nre,omitempty" json:"name__nre,omitempty"`

	// NameRe name__re
	NameRe *string `form:"name__re,omitempty" json:"name__re,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`

	// Platform Platform (slug)
	Platform *string `form:"platform,omitempty" json:"platform,omitempty"`

	// PlatformN Platform (slug)
	PlatformN *string `form:"platform__n,omitempty" json:"platform__n,omitempty"`

	// PlatformId Platform (ID)
	PlatformId *string `form:"platform_id,omitempty" json:"platform_id,omitempty"`

	// PlatformIdN Platform (ID)
	PlatformIdN *string `form:"platform_id__n,omitempty" json:"platform_id__n,omitempty"`

	// PrimaryIp4 Primary IPv4 Address (address or ID)
	PrimaryIp4 *string `form:"primary_ip4,omitempty" json:"primary_ip4,omitempty"`

	// PrimaryIp6 Primary IPv6 Address (address or ID)
	PrimaryIp6 *string `form:"primary_ip6,omitempty" json:"primary_ip6,omitempty"`

	// Q Search
	Q *string `form:"q,omitempty" json:"q,omitempty"`

	// Region Region (slug)
	Region *string `form:"region,omitempty" json:"region,omitempty"`

	// RegionN Region (slug)
	RegionN *string `form:"region__n,omitempty" json:"region__n,omitempty"`

	// RegionId Region (ID)
	RegionId *string `form:"region_id,omitempty" json:"region_id,omitempty"`

	// RegionIdN Region (ID)
	RegionIdN *string `form:"region_id__n,omitempty" json:"region_id__n,omitempty"`

	// Role Role (slug)
	Role *string `form:"role,omitempty" json:"role,omitempty"`

	// RoleN Role (slug)
	RoleN *string `form:"role__n,omitempty" json:"role__n,omitempty"`

	// RoleId Role (ID)
	RoleId *string `form:"role_id,omitempty" json:"role_id,omitempty"`

	// RoleIdN Role (ID)
	RoleIdN *string `form:"role_id__n,omitempty" json:"role_id__n,omitempty"`

	// Services Services (name or ID)
	Services *string `form:"services,omitempty" json:"services,omitempty"`

	// ServicesN Services (name or ID)
	ServicesN *string `form:"services__n,omitempty" json:"services__n,omitempty"`

	// Site Site (slug)
	Site *string `form:"site,omitempty" json:"site,omitempty"`

	// SiteN Site (slug)
	SiteN *string `form:"site__n,omitempty" json:"site__n,omitempty"`

	// SiteId Site (ID)
	SiteId *string `form:"site_id,omitempty" json:"site_id,omitempty"`

	// SiteIdN Site (ID)
	SiteIdN *string `form:"site_id__n,omitempty" json:"site_id__n,omitempty"`

	// Status status
	Status *string `form:"status,omitempty" json:"status,omitempty"`

	// StatusN status__n
	StatusN *string `form:"status__n,omitempty" json:"status__n,omitempty"`

	// Tag tag
	Tag *string `form:"tag,omitempty" json:"tag,omitempty"`

	// TagN tag__n
	TagN *string `form:"tag__n,omitempty" json:"tag__n,omitempty"`

	// Tenant Tenant (slug or ID)
	Tenant *string `form:"tenant,omitempty" json:"tenant,omitempty"`

	// TenantN Tenant (slug or ID)
	TenantN *string `form:"tenant__n,omitempty" json:"tenant__n,omitempty"`

	// TenantGroup Tenant Group (slug)
	TenantGroup *string `form:"tenant_group,omitempty" json:"tenant_group,omitempty"`

	// TenantGroupN Tenant Group (slug)
	TenantGroupN *string `form:"tenant_group__n,omitempty" json:"tenant_group__n,omitempty"`

	// TenantGroupId Tenant Group (ID)
	TenantGroupId *string `form:"tenant_group_id,omitempty" json:"tenant_group_id,omitempty"`

	// TenantGroupIdN Tenant Group (ID)
	TenantGroupIdN *string `form:"tenant_group_id__n,omitempty" json:"tenant_group_id__n,omitempty"`

	// TenantId Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantId *string `form:"tenant_id,omitempty" json:"tenant_id,omitempty"`

	// TenantIdN Tenant (ID) (deprecated, use "tenant" filter instead)
	TenantIdN *string `form:"tenant_id__n,omitempty" json:"tenant_id__n,omitempty"`

	// Vcpus vcpus
	Vcpus *string `form:"vcpus,omitempty" json:"vcpus,omitempty"`

	// VcpusGt vcpus__gt
	VcpusGt *string `form:"vcpus__gt,omitempty" json:"vcpus__gt,omitempty"`

	// VcpusGte vcpus__gte
	VcpusGte *string `form:"vcpus__gte,omitempty" json:"vcpus__gte,omitempty"`

	// VcpusLt vcpus__lt
	VcpusLt *string `form:"vcpus__lt,omitempty" json:"vcpus__lt,omitempty"`

	// VcpusLte vcpus__lte
	VcpusLte *string `form:"vcpus__lte,omitempty" json:"vcpus__lte,omitempty"`

	// VcpusN vcpus__n
	VcpusN *string `form:"vcpus__n,omitempty" json:"vcpus__n,omitempty"`
}

// VirtualizationVirtualMachinesBulkPartialUpdateJSONBody defines parameters for VirtualizationVirtualMachinesBulkPartialUpdate.
type VirtualizationVirtualMachinesBulkPartialUpdateJSONBody = []PatchedBulkWritableVirtualMachineWithConfigContextRequest

// VirtualizationVirtualMachinesBulkUpdateJSONBody defines parameters for VirtualizationVirtualMachinesBulkUpdate.
type VirtualizationVirtualMachinesBulkUpdateJSONBody = []BulkWritableVirtualMachineWithConfigContextRequest

// VirtualizationVirtualMachinesNotesListParams defines parameters for VirtualizationVirtualMachinesNotesList.
type VirtualizationVirtualMachinesNotesListParams struct {
	// Limit Number of results to return per page.
	Limit *int `form:"limit,omitempty" json:"limit,omitempty"`

	// Offset The initial index from which to return the results.
	Offset *int `form:"offset,omitempty" json:"offset,omitempty"`
}

// CircuitsCircuitTerminationsBulkDestroyJSONRequestBody defines body for CircuitsCircuitTerminationsBulkDestroy for application/json ContentType.
type CircuitsCircuitTerminationsBulkDestroyJSONRequestBody = CircuitsCircuitTerminationsBulkDestroyJSONBody

// CircuitsCircuitTerminationsBulkPartialUpdateJSONRequestBody defines body for CircuitsCircuitTerminationsBulkPartialUpdate for application/json ContentType.
type CircuitsCircuitTerminationsBulkPartialUpdateJSONRequestBody = CircuitsCircuitTerminationsBulkPartialUpdateJSONBody

// CircuitsCircuitTerminationsCreateJSONRequestBody defines body for CircuitsCircuitTerminationsCreate for application/json ContentType.
type CircuitsCircuitTerminationsCreateJSONRequestBody = WritableCircuitTerminationRequest

// CircuitsCircuitTerminationsBulkUpdateJSONRequestBody defines body for CircuitsCircuitTerminationsBulkUpdate for application/json ContentType.
type CircuitsCircuitTerminationsBulkUpdateJSONRequestBody = CircuitsCircuitTerminationsBulkUpdateJSONBody

// CircuitsCircuitTerminationsPartialUpdateJSONRequestBody defines body for CircuitsCircuitTerminationsPartialUpdate for application/json ContentType.
type CircuitsCircuitTerminationsPartialUpdateJSONRequestBody = PatchedWritableCircuitTerminationRequest

// CircuitsCircuitTerminationsUpdateJSONRequestBody defines body for CircuitsCircuitTerminationsUpdate for application/json ContentType.
type CircuitsCircuitTerminationsUpdateJSONRequestBody = WritableCircuitTerminationRequest

// CircuitsCircuitTerminationsNotesCreateJSONRequestBody defines body for CircuitsCircuitTerminationsNotesCreate for application/json ContentType.
type CircuitsCircuitTerminationsNotesCreateJSONRequestBody = NoteInputRequest

// CircuitsCircuitTypesBulkDestroyJSONRequestBody defines body for CircuitsCircuitTypesBulkDestroy for application/json ContentType.
type CircuitsCircuitTypesBulkDestroyJSONRequestBody = CircuitsCircuitTypesBulkDestroyJSONBody

// CircuitsCircuitTypesBulkPartialUpdateJSONRequestBody defines body for CircuitsCircuitTypesBulkPartialUpdate for application/json ContentType.
type CircuitsCircuitTypesBulkPartialUpdateJSONRequestBody = CircuitsCircuitTypesBulkPartialUpdateJSONBody

// CircuitsCircuitTypesCreateJSONRequestBody defines body for CircuitsCircuitTypesCreate for application/json ContentType.
type CircuitsCircuitTypesCreateJSONRequestBody = CircuitTypeRequest

// CircuitsCircuitTypesBulkUpdateJSONRequestBody defines body for CircuitsCircuitTypesBulkUpdate for application/json ContentType.
type CircuitsCircuitTypesBulkUpdateJSONRequestBody = CircuitsCircuitTypesBulkUpdateJSONBody

// CircuitsCircuitTypesPartialUpdateJSONRequestBody defines body for CircuitsCircuitTypesPartialUpdate for application/json ContentType.
type CircuitsCircuitTypesPartialUpdateJSONRequestBody = PatchedCircuitTypeRequest

// CircuitsCircuitTypesUpdateJSONRequestBody defines body for CircuitsCircuitTypesUpdate for application/json ContentType.
type CircuitsCircuitTypesUpdateJSONRequestBody = CircuitTypeRequest

// CircuitsCircuitTypesNotesCreateJSONRequestBody defines body for CircuitsCircuitTypesNotesCreate for application/json ContentType.
type CircuitsCircuitTypesNotesCreateJSONRequestBody = NoteInputRequest

// CircuitsCircuitsBulkDestroyJSONRequestBody defines body for CircuitsCircuitsBulkDestroy for application/json ContentType.
type CircuitsCircuitsBulkDestroyJSONRequestBody = CircuitsCircuitsBulkDestroyJSONBody

// CircuitsCircuitsBulkPartialUpdateJSONRequestBody defines body for CircuitsCircuitsBulkPartialUpdate for application/json ContentType.
type CircuitsCircuitsBulkPartialUpdateJSONRequestBody = CircuitsCircuitsBulkPartialUpdateJSONBody

// CircuitsCircuitsCreateJSONRequestBody defines body for CircuitsCircuitsCreate for application/json ContentType.
type CircuitsCircuitsCreateJSONRequestBody = WritableCircuitRequest

// CircuitsCircuitsBulkUpdateJSONRequestBody defines body for CircuitsCircuitsBulkUpdate for application/json ContentType.
type CircuitsCircuitsBulkUpdateJSONRequestBody = CircuitsCircuitsBulkUpdateJSONBody

// CircuitsCircuitsPartialUpdateJSONRequestBody defines body for CircuitsCircuitsPartialUpdate for application/json ContentType.
type CircuitsCircuitsPartialUpdateJSONRequestBody = PatchedWritableCircuitRequest

// CircuitsCircuitsUpdateJSONRequestBody defines body for CircuitsCircuitsUpdate for application/json ContentType.
type CircuitsCircuitsUpdateJSONRequestBody = WritableCircuitRequest

// CircuitsCircuitsNotesCreateJSONRequestBody defines body for CircuitsCircuitsNotesCreate for application/json ContentType.
type CircuitsCircuitsNotesCreateJSONRequestBody = NoteInputRequest

// CircuitsProviderNetworksBulkDestroyJSONRequestBody defines body for CircuitsProviderNetworksBulkDestroy for application/json ContentType.
type CircuitsProviderNetworksBulkDestroyJSONRequestBody = CircuitsProviderNetworksBulkDestroyJSONBody

// CircuitsProviderNetworksBulkPartialUpdateJSONRequestBody defines body for CircuitsProviderNetworksBulkPartialUpdate for application/json ContentType.
type CircuitsProviderNetworksBulkPartialUpdateJSONRequestBody = CircuitsProviderNetworksBulkPartialUpdateJSONBody

// CircuitsProviderNetworksCreateJSONRequestBody defines body for CircuitsProviderNetworksCreate for application/json ContentType.
type CircuitsProviderNetworksCreateJSONRequestBody = WritableProviderNetworkRequest

// CircuitsProviderNetworksBulkUpdateJSONRequestBody defines body for CircuitsProviderNetworksBulkUpdate for application/json ContentType.
type CircuitsProviderNetworksBulkUpdateJSONRequestBody = CircuitsProviderNetworksBulkUpdateJSONBody

// CircuitsProviderNetworksPartialUpdateJSONRequestBody defines body for CircuitsProviderNetworksPartialUpdate for application/json ContentType.
type CircuitsProviderNetworksPartialUpdateJSONRequestBody = PatchedWritableProviderNetworkRequest

// CircuitsProviderNetworksUpdateJSONRequestBody defines body for CircuitsProviderNetworksUpdate for application/json ContentType.
type CircuitsProviderNetworksUpdateJSONRequestBody = WritableProviderNetworkRequest

// CircuitsProviderNetworksNotesCreateJSONRequestBody defines body for CircuitsProviderNetworksNotesCreate for application/json ContentType.
type CircuitsProviderNetworksNotesCreateJSONRequestBody = NoteInputRequest

// CircuitsProvidersBulkDestroyJSONRequestBody defines body for CircuitsProvidersBulkDestroy for application/json ContentType.
type CircuitsProvidersBulkDestroyJSONRequestBody = CircuitsProvidersBulkDestroyJSONBody

// CircuitsProvidersBulkPartialUpdateJSONRequestBody defines body for CircuitsProvidersBulkPartialUpdate for application/json ContentType.
type CircuitsProvidersBulkPartialUpdateJSONRequestBody = CircuitsProvidersBulkPartialUpdateJSONBody

// CircuitsProvidersCreateJSONRequestBody defines body for CircuitsProvidersCreate for application/json ContentType.
type CircuitsProvidersCreateJSONRequestBody = ProviderRequest

// CircuitsProvidersBulkUpdateJSONRequestBody defines body for CircuitsProvidersBulkUpdate for application/json ContentType.
type CircuitsProvidersBulkUpdateJSONRequestBody = CircuitsProvidersBulkUpdateJSONBody

// CircuitsProvidersPartialUpdateJSONRequestBody defines body for CircuitsProvidersPartialUpdate for application/json ContentType.
type CircuitsProvidersPartialUpdateJSONRequestBody = PatchedProviderRequest

// CircuitsProvidersUpdateJSONRequestBody defines body for CircuitsProvidersUpdate for application/json ContentType.
type CircuitsProvidersUpdateJSONRequestBody = ProviderRequest

// CircuitsProvidersNotesCreateJSONRequestBody defines body for CircuitsProvidersNotesCreate for application/json ContentType.
type CircuitsProvidersNotesCreateJSONRequestBody = NoteInputRequest

// DcimCablesBulkDestroyJSONRequestBody defines body for DcimCablesBulkDestroy for application/json ContentType.
type DcimCablesBulkDestroyJSONRequestBody = DcimCablesBulkDestroyJSONBody

// DcimCablesBulkPartialUpdateJSONRequestBody defines body for DcimCablesBulkPartialUpdate for application/json ContentType.
type DcimCablesBulkPartialUpdateJSONRequestBody = DcimCablesBulkPartialUpdateJSONBody

// DcimCablesCreateJSONRequestBody defines body for DcimCablesCreate for application/json ContentType.
type DcimCablesCreateJSONRequestBody = WritableCableRequest

// DcimCablesBulkUpdateJSONRequestBody defines body for DcimCablesBulkUpdate for application/json ContentType.
type DcimCablesBulkUpdateJSONRequestBody = DcimCablesBulkUpdateJSONBody

// DcimCablesPartialUpdateJSONRequestBody defines body for DcimCablesPartialUpdate for application/json ContentType.
type DcimCablesPartialUpdateJSONRequestBody = PatchedWritableCableRequest

// DcimCablesUpdateJSONRequestBody defines body for DcimCablesUpdate for application/json ContentType.
type DcimCablesUpdateJSONRequestBody = WritableCableRequest

// DcimCablesNotesCreateJSONRequestBody defines body for DcimCablesNotesCreate for application/json ContentType.
type DcimCablesNotesCreateJSONRequestBody = NoteInputRequest

// DcimConsolePortTemplatesBulkDestroyJSONRequestBody defines body for DcimConsolePortTemplatesBulkDestroy for application/json ContentType.
type DcimConsolePortTemplatesBulkDestroyJSONRequestBody = DcimConsolePortTemplatesBulkDestroyJSONBody

// DcimConsolePortTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimConsolePortTemplatesBulkPartialUpdate for application/json ContentType.
type DcimConsolePortTemplatesBulkPartialUpdateJSONRequestBody = DcimConsolePortTemplatesBulkPartialUpdateJSONBody

// DcimConsolePortTemplatesCreateJSONRequestBody defines body for DcimConsolePortTemplatesCreate for application/json ContentType.
type DcimConsolePortTemplatesCreateJSONRequestBody = WritableConsolePortTemplateRequest

// DcimConsolePortTemplatesBulkUpdateJSONRequestBody defines body for DcimConsolePortTemplatesBulkUpdate for application/json ContentType.
type DcimConsolePortTemplatesBulkUpdateJSONRequestBody = DcimConsolePortTemplatesBulkUpdateJSONBody

// DcimConsolePortTemplatesPartialUpdateJSONRequestBody defines body for DcimConsolePortTemplatesPartialUpdate for application/json ContentType.
type DcimConsolePortTemplatesPartialUpdateJSONRequestBody = PatchedWritableConsolePortTemplateRequest

// DcimConsolePortTemplatesUpdateJSONRequestBody defines body for DcimConsolePortTemplatesUpdate for application/json ContentType.
type DcimConsolePortTemplatesUpdateJSONRequestBody = WritableConsolePortTemplateRequest

// DcimConsolePortTemplatesNotesCreateJSONRequestBody defines body for DcimConsolePortTemplatesNotesCreate for application/json ContentType.
type DcimConsolePortTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimConsolePortsBulkDestroyJSONRequestBody defines body for DcimConsolePortsBulkDestroy for application/json ContentType.
type DcimConsolePortsBulkDestroyJSONRequestBody = DcimConsolePortsBulkDestroyJSONBody

// DcimConsolePortsBulkPartialUpdateJSONRequestBody defines body for DcimConsolePortsBulkPartialUpdate for application/json ContentType.
type DcimConsolePortsBulkPartialUpdateJSONRequestBody = DcimConsolePortsBulkPartialUpdateJSONBody

// DcimConsolePortsCreateJSONRequestBody defines body for DcimConsolePortsCreate for application/json ContentType.
type DcimConsolePortsCreateJSONRequestBody = WritableConsolePortRequest

// DcimConsolePortsBulkUpdateJSONRequestBody defines body for DcimConsolePortsBulkUpdate for application/json ContentType.
type DcimConsolePortsBulkUpdateJSONRequestBody = DcimConsolePortsBulkUpdateJSONBody

// DcimConsolePortsPartialUpdateJSONRequestBody defines body for DcimConsolePortsPartialUpdate for application/json ContentType.
type DcimConsolePortsPartialUpdateJSONRequestBody = PatchedWritableConsolePortRequest

// DcimConsolePortsUpdateJSONRequestBody defines body for DcimConsolePortsUpdate for application/json ContentType.
type DcimConsolePortsUpdateJSONRequestBody = WritableConsolePortRequest

// DcimConsolePortsNotesCreateJSONRequestBody defines body for DcimConsolePortsNotesCreate for application/json ContentType.
type DcimConsolePortsNotesCreateJSONRequestBody = NoteInputRequest

// DcimConsoleServerPortTemplatesBulkDestroyJSONRequestBody defines body for DcimConsoleServerPortTemplatesBulkDestroy for application/json ContentType.
type DcimConsoleServerPortTemplatesBulkDestroyJSONRequestBody = DcimConsoleServerPortTemplatesBulkDestroyJSONBody

// DcimConsoleServerPortTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimConsoleServerPortTemplatesBulkPartialUpdate for application/json ContentType.
type DcimConsoleServerPortTemplatesBulkPartialUpdateJSONRequestBody = DcimConsoleServerPortTemplatesBulkPartialUpdateJSONBody

// DcimConsoleServerPortTemplatesCreateJSONRequestBody defines body for DcimConsoleServerPortTemplatesCreate for application/json ContentType.
type DcimConsoleServerPortTemplatesCreateJSONRequestBody = WritableConsoleServerPortTemplateRequest

// DcimConsoleServerPortTemplatesBulkUpdateJSONRequestBody defines body for DcimConsoleServerPortTemplatesBulkUpdate for application/json ContentType.
type DcimConsoleServerPortTemplatesBulkUpdateJSONRequestBody = DcimConsoleServerPortTemplatesBulkUpdateJSONBody

// DcimConsoleServerPortTemplatesPartialUpdateJSONRequestBody defines body for DcimConsoleServerPortTemplatesPartialUpdate for application/json ContentType.
type DcimConsoleServerPortTemplatesPartialUpdateJSONRequestBody = PatchedWritableConsoleServerPortTemplateRequest

// DcimConsoleServerPortTemplatesUpdateJSONRequestBody defines body for DcimConsoleServerPortTemplatesUpdate for application/json ContentType.
type DcimConsoleServerPortTemplatesUpdateJSONRequestBody = WritableConsoleServerPortTemplateRequest

// DcimConsoleServerPortTemplatesNotesCreateJSONRequestBody defines body for DcimConsoleServerPortTemplatesNotesCreate for application/json ContentType.
type DcimConsoleServerPortTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimConsoleServerPortsBulkDestroyJSONRequestBody defines body for DcimConsoleServerPortsBulkDestroy for application/json ContentType.
type DcimConsoleServerPortsBulkDestroyJSONRequestBody = DcimConsoleServerPortsBulkDestroyJSONBody

// DcimConsoleServerPortsBulkPartialUpdateJSONRequestBody defines body for DcimConsoleServerPortsBulkPartialUpdate for application/json ContentType.
type DcimConsoleServerPortsBulkPartialUpdateJSONRequestBody = DcimConsoleServerPortsBulkPartialUpdateJSONBody

// DcimConsoleServerPortsCreateJSONRequestBody defines body for DcimConsoleServerPortsCreate for application/json ContentType.
type DcimConsoleServerPortsCreateJSONRequestBody = WritableConsoleServerPortRequest

// DcimConsoleServerPortsBulkUpdateJSONRequestBody defines body for DcimConsoleServerPortsBulkUpdate for application/json ContentType.
type DcimConsoleServerPortsBulkUpdateJSONRequestBody = DcimConsoleServerPortsBulkUpdateJSONBody

// DcimConsoleServerPortsPartialUpdateJSONRequestBody defines body for DcimConsoleServerPortsPartialUpdate for application/json ContentType.
type DcimConsoleServerPortsPartialUpdateJSONRequestBody = PatchedWritableConsoleServerPortRequest

// DcimConsoleServerPortsUpdateJSONRequestBody defines body for DcimConsoleServerPortsUpdate for application/json ContentType.
type DcimConsoleServerPortsUpdateJSONRequestBody = WritableConsoleServerPortRequest

// DcimConsoleServerPortsNotesCreateJSONRequestBody defines body for DcimConsoleServerPortsNotesCreate for application/json ContentType.
type DcimConsoleServerPortsNotesCreateJSONRequestBody = NoteInputRequest

// DcimDeviceBayTemplatesBulkDestroyJSONRequestBody defines body for DcimDeviceBayTemplatesBulkDestroy for application/json ContentType.
type DcimDeviceBayTemplatesBulkDestroyJSONRequestBody = DcimDeviceBayTemplatesBulkDestroyJSONBody

// DcimDeviceBayTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimDeviceBayTemplatesBulkPartialUpdate for application/json ContentType.
type DcimDeviceBayTemplatesBulkPartialUpdateJSONRequestBody = DcimDeviceBayTemplatesBulkPartialUpdateJSONBody

// DcimDeviceBayTemplatesCreateJSONRequestBody defines body for DcimDeviceBayTemplatesCreate for application/json ContentType.
type DcimDeviceBayTemplatesCreateJSONRequestBody = WritableDeviceBayTemplateRequest

// DcimDeviceBayTemplatesBulkUpdateJSONRequestBody defines body for DcimDeviceBayTemplatesBulkUpdate for application/json ContentType.
type DcimDeviceBayTemplatesBulkUpdateJSONRequestBody = DcimDeviceBayTemplatesBulkUpdateJSONBody

// DcimDeviceBayTemplatesPartialUpdateJSONRequestBody defines body for DcimDeviceBayTemplatesPartialUpdate for application/json ContentType.
type DcimDeviceBayTemplatesPartialUpdateJSONRequestBody = PatchedWritableDeviceBayTemplateRequest

// DcimDeviceBayTemplatesUpdateJSONRequestBody defines body for DcimDeviceBayTemplatesUpdate for application/json ContentType.
type DcimDeviceBayTemplatesUpdateJSONRequestBody = WritableDeviceBayTemplateRequest

// DcimDeviceBayTemplatesNotesCreateJSONRequestBody defines body for DcimDeviceBayTemplatesNotesCreate for application/json ContentType.
type DcimDeviceBayTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimDeviceBaysBulkDestroyJSONRequestBody defines body for DcimDeviceBaysBulkDestroy for application/json ContentType.
type DcimDeviceBaysBulkDestroyJSONRequestBody = DcimDeviceBaysBulkDestroyJSONBody

// DcimDeviceBaysBulkPartialUpdateJSONRequestBody defines body for DcimDeviceBaysBulkPartialUpdate for application/json ContentType.
type DcimDeviceBaysBulkPartialUpdateJSONRequestBody = DcimDeviceBaysBulkPartialUpdateJSONBody

// DcimDeviceBaysCreateJSONRequestBody defines body for DcimDeviceBaysCreate for application/json ContentType.
type DcimDeviceBaysCreateJSONRequestBody = WritableDeviceBayRequest

// DcimDeviceBaysBulkUpdateJSONRequestBody defines body for DcimDeviceBaysBulkUpdate for application/json ContentType.
type DcimDeviceBaysBulkUpdateJSONRequestBody = DcimDeviceBaysBulkUpdateJSONBody

// DcimDeviceBaysPartialUpdateJSONRequestBody defines body for DcimDeviceBaysPartialUpdate for application/json ContentType.
type DcimDeviceBaysPartialUpdateJSONRequestBody = PatchedWritableDeviceBayRequest

// DcimDeviceBaysUpdateJSONRequestBody defines body for DcimDeviceBaysUpdate for application/json ContentType.
type DcimDeviceBaysUpdateJSONRequestBody = WritableDeviceBayRequest

// DcimDeviceBaysNotesCreateJSONRequestBody defines body for DcimDeviceBaysNotesCreate for application/json ContentType.
type DcimDeviceBaysNotesCreateJSONRequestBody = NoteInputRequest

// DcimDeviceRedundancyGroupsBulkDestroyJSONRequestBody defines body for DcimDeviceRedundancyGroupsBulkDestroy for application/json ContentType.
type DcimDeviceRedundancyGroupsBulkDestroyJSONRequestBody = DcimDeviceRedundancyGroupsBulkDestroyJSONBody

// DcimDeviceRedundancyGroupsBulkPartialUpdateJSONRequestBody defines body for DcimDeviceRedundancyGroupsBulkPartialUpdate for application/json ContentType.
type DcimDeviceRedundancyGroupsBulkPartialUpdateJSONRequestBody = DcimDeviceRedundancyGroupsBulkPartialUpdateJSONBody

// DcimDeviceRedundancyGroupsCreateJSONRequestBody defines body for DcimDeviceRedundancyGroupsCreate for application/json ContentType.
type DcimDeviceRedundancyGroupsCreateJSONRequestBody = WritableDeviceRedundancyGroupRequest

// DcimDeviceRedundancyGroupsBulkUpdateJSONRequestBody defines body for DcimDeviceRedundancyGroupsBulkUpdate for application/json ContentType.
type DcimDeviceRedundancyGroupsBulkUpdateJSONRequestBody = DcimDeviceRedundancyGroupsBulkUpdateJSONBody

// DcimDeviceRedundancyGroupsPartialUpdateJSONRequestBody defines body for DcimDeviceRedundancyGroupsPartialUpdate for application/json ContentType.
type DcimDeviceRedundancyGroupsPartialUpdateJSONRequestBody = PatchedWritableDeviceRedundancyGroupRequest

// DcimDeviceRedundancyGroupsUpdateJSONRequestBody defines body for DcimDeviceRedundancyGroupsUpdate for application/json ContentType.
type DcimDeviceRedundancyGroupsUpdateJSONRequestBody = WritableDeviceRedundancyGroupRequest

// DcimDeviceRedundancyGroupsNotesCreateJSONRequestBody defines body for DcimDeviceRedundancyGroupsNotesCreate for application/json ContentType.
type DcimDeviceRedundancyGroupsNotesCreateJSONRequestBody = NoteInputRequest

// DcimDeviceRolesBulkDestroyJSONRequestBody defines body for DcimDeviceRolesBulkDestroy for application/json ContentType.
type DcimDeviceRolesBulkDestroyJSONRequestBody = DcimDeviceRolesBulkDestroyJSONBody

// DcimDeviceRolesBulkPartialUpdateJSONRequestBody defines body for DcimDeviceRolesBulkPartialUpdate for application/json ContentType.
type DcimDeviceRolesBulkPartialUpdateJSONRequestBody = DcimDeviceRolesBulkPartialUpdateJSONBody

// DcimDeviceRolesCreateJSONRequestBody defines body for DcimDeviceRolesCreate for application/json ContentType.
type DcimDeviceRolesCreateJSONRequestBody = DeviceRoleRequest

// DcimDeviceRolesBulkUpdateJSONRequestBody defines body for DcimDeviceRolesBulkUpdate for application/json ContentType.
type DcimDeviceRolesBulkUpdateJSONRequestBody = DcimDeviceRolesBulkUpdateJSONBody

// DcimDeviceRolesPartialUpdateJSONRequestBody defines body for DcimDeviceRolesPartialUpdate for application/json ContentType.
type DcimDeviceRolesPartialUpdateJSONRequestBody = PatchedDeviceRoleRequest

// DcimDeviceRolesUpdateJSONRequestBody defines body for DcimDeviceRolesUpdate for application/json ContentType.
type DcimDeviceRolesUpdateJSONRequestBody = DeviceRoleRequest

// DcimDeviceRolesNotesCreateJSONRequestBody defines body for DcimDeviceRolesNotesCreate for application/json ContentType.
type DcimDeviceRolesNotesCreateJSONRequestBody = NoteInputRequest

// DcimDeviceTypesBulkDestroyJSONRequestBody defines body for DcimDeviceTypesBulkDestroy for application/json ContentType.
type DcimDeviceTypesBulkDestroyJSONRequestBody = DcimDeviceTypesBulkDestroyJSONBody

// DcimDeviceTypesBulkPartialUpdateJSONRequestBody defines body for DcimDeviceTypesBulkPartialUpdate for application/json ContentType.
type DcimDeviceTypesBulkPartialUpdateJSONRequestBody = DcimDeviceTypesBulkPartialUpdateJSONBody

// DcimDeviceTypesCreateJSONRequestBody defines body for DcimDeviceTypesCreate for application/json ContentType.
type DcimDeviceTypesCreateJSONRequestBody = WritableDeviceTypeRequest

// DcimDeviceTypesBulkUpdateJSONRequestBody defines body for DcimDeviceTypesBulkUpdate for application/json ContentType.
type DcimDeviceTypesBulkUpdateJSONRequestBody = DcimDeviceTypesBulkUpdateJSONBody

// DcimDeviceTypesPartialUpdateJSONRequestBody defines body for DcimDeviceTypesPartialUpdate for application/json ContentType.
type DcimDeviceTypesPartialUpdateJSONRequestBody = PatchedWritableDeviceTypeRequest

// DcimDeviceTypesUpdateJSONRequestBody defines body for DcimDeviceTypesUpdate for application/json ContentType.
type DcimDeviceTypesUpdateJSONRequestBody = WritableDeviceTypeRequest

// DcimDeviceTypesNotesCreateJSONRequestBody defines body for DcimDeviceTypesNotesCreate for application/json ContentType.
type DcimDeviceTypesNotesCreateJSONRequestBody = NoteInputRequest

// DcimDevicesBulkDestroyJSONRequestBody defines body for DcimDevicesBulkDestroy for application/json ContentType.
type DcimDevicesBulkDestroyJSONRequestBody = DcimDevicesBulkDestroyJSONBody

// DcimDevicesBulkPartialUpdateJSONRequestBody defines body for DcimDevicesBulkPartialUpdate for application/json ContentType.
type DcimDevicesBulkPartialUpdateJSONRequestBody = DcimDevicesBulkPartialUpdateJSONBody

// DcimDevicesCreateJSONRequestBody defines body for DcimDevicesCreate for application/json ContentType.
type DcimDevicesCreateJSONRequestBody = WritableDeviceWithConfigContextRequest

// DcimDevicesBulkUpdateJSONRequestBody defines body for DcimDevicesBulkUpdate for application/json ContentType.
type DcimDevicesBulkUpdateJSONRequestBody = DcimDevicesBulkUpdateJSONBody

// DcimDevicesPartialUpdateJSONRequestBody defines body for DcimDevicesPartialUpdate for application/json ContentType.
type DcimDevicesPartialUpdateJSONRequestBody = PatchedWritableDeviceWithConfigContextRequest

// DcimDevicesUpdateJSONRequestBody defines body for DcimDevicesUpdate for application/json ContentType.
type DcimDevicesUpdateJSONRequestBody = WritableDeviceWithConfigContextRequest

// DcimDevicesNotesCreateJSONRequestBody defines body for DcimDevicesNotesCreate for application/json ContentType.
type DcimDevicesNotesCreateJSONRequestBody = NoteInputRequest

// DcimFrontPortTemplatesBulkDestroyJSONRequestBody defines body for DcimFrontPortTemplatesBulkDestroy for application/json ContentType.
type DcimFrontPortTemplatesBulkDestroyJSONRequestBody = DcimFrontPortTemplatesBulkDestroyJSONBody

// DcimFrontPortTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimFrontPortTemplatesBulkPartialUpdate for application/json ContentType.
type DcimFrontPortTemplatesBulkPartialUpdateJSONRequestBody = DcimFrontPortTemplatesBulkPartialUpdateJSONBody

// DcimFrontPortTemplatesCreateJSONRequestBody defines body for DcimFrontPortTemplatesCreate for application/json ContentType.
type DcimFrontPortTemplatesCreateJSONRequestBody = WritableFrontPortTemplateRequest

// DcimFrontPortTemplatesBulkUpdateJSONRequestBody defines body for DcimFrontPortTemplatesBulkUpdate for application/json ContentType.
type DcimFrontPortTemplatesBulkUpdateJSONRequestBody = DcimFrontPortTemplatesBulkUpdateJSONBody

// DcimFrontPortTemplatesPartialUpdateJSONRequestBody defines body for DcimFrontPortTemplatesPartialUpdate for application/json ContentType.
type DcimFrontPortTemplatesPartialUpdateJSONRequestBody = PatchedWritableFrontPortTemplateRequest

// DcimFrontPortTemplatesUpdateJSONRequestBody defines body for DcimFrontPortTemplatesUpdate for application/json ContentType.
type DcimFrontPortTemplatesUpdateJSONRequestBody = WritableFrontPortTemplateRequest

// DcimFrontPortTemplatesNotesCreateJSONRequestBody defines body for DcimFrontPortTemplatesNotesCreate for application/json ContentType.
type DcimFrontPortTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimFrontPortsBulkDestroyJSONRequestBody defines body for DcimFrontPortsBulkDestroy for application/json ContentType.
type DcimFrontPortsBulkDestroyJSONRequestBody = DcimFrontPortsBulkDestroyJSONBody

// DcimFrontPortsBulkPartialUpdateJSONRequestBody defines body for DcimFrontPortsBulkPartialUpdate for application/json ContentType.
type DcimFrontPortsBulkPartialUpdateJSONRequestBody = DcimFrontPortsBulkPartialUpdateJSONBody

// DcimFrontPortsCreateJSONRequestBody defines body for DcimFrontPortsCreate for application/json ContentType.
type DcimFrontPortsCreateJSONRequestBody = WritableFrontPortRequest

// DcimFrontPortsBulkUpdateJSONRequestBody defines body for DcimFrontPortsBulkUpdate for application/json ContentType.
type DcimFrontPortsBulkUpdateJSONRequestBody = DcimFrontPortsBulkUpdateJSONBody

// DcimFrontPortsPartialUpdateJSONRequestBody defines body for DcimFrontPortsPartialUpdate for application/json ContentType.
type DcimFrontPortsPartialUpdateJSONRequestBody = PatchedWritableFrontPortRequest

// DcimFrontPortsUpdateJSONRequestBody defines body for DcimFrontPortsUpdate for application/json ContentType.
type DcimFrontPortsUpdateJSONRequestBody = WritableFrontPortRequest

// DcimFrontPortsNotesCreateJSONRequestBody defines body for DcimFrontPortsNotesCreate for application/json ContentType.
type DcimFrontPortsNotesCreateJSONRequestBody = NoteInputRequest

// DcimInterfaceTemplatesBulkDestroyJSONRequestBody defines body for DcimInterfaceTemplatesBulkDestroy for application/json ContentType.
type DcimInterfaceTemplatesBulkDestroyJSONRequestBody = DcimInterfaceTemplatesBulkDestroyJSONBody

// DcimInterfaceTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimInterfaceTemplatesBulkPartialUpdate for application/json ContentType.
type DcimInterfaceTemplatesBulkPartialUpdateJSONRequestBody = DcimInterfaceTemplatesBulkPartialUpdateJSONBody

// DcimInterfaceTemplatesCreateJSONRequestBody defines body for DcimInterfaceTemplatesCreate for application/json ContentType.
type DcimInterfaceTemplatesCreateJSONRequestBody = WritableInterfaceTemplateRequest

// DcimInterfaceTemplatesBulkUpdateJSONRequestBody defines body for DcimInterfaceTemplatesBulkUpdate for application/json ContentType.
type DcimInterfaceTemplatesBulkUpdateJSONRequestBody = DcimInterfaceTemplatesBulkUpdateJSONBody

// DcimInterfaceTemplatesPartialUpdateJSONRequestBody defines body for DcimInterfaceTemplatesPartialUpdate for application/json ContentType.
type DcimInterfaceTemplatesPartialUpdateJSONRequestBody = PatchedWritableInterfaceTemplateRequest

// DcimInterfaceTemplatesUpdateJSONRequestBody defines body for DcimInterfaceTemplatesUpdate for application/json ContentType.
type DcimInterfaceTemplatesUpdateJSONRequestBody = WritableInterfaceTemplateRequest

// DcimInterfaceTemplatesNotesCreateJSONRequestBody defines body for DcimInterfaceTemplatesNotesCreate for application/json ContentType.
type DcimInterfaceTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimInterfacesBulkDestroyJSONRequestBody defines body for DcimInterfacesBulkDestroy for application/json ContentType.
type DcimInterfacesBulkDestroyJSONRequestBody = DcimInterfacesBulkDestroyJSONBody

// DcimInterfacesBulkPartialUpdateJSONRequestBody defines body for DcimInterfacesBulkPartialUpdate for application/json ContentType.
type DcimInterfacesBulkPartialUpdateJSONRequestBody = DcimInterfacesBulkPartialUpdateJSONBody

// DcimInterfacesCreateJSONRequestBody defines body for DcimInterfacesCreate for application/json ContentType.
type DcimInterfacesCreateJSONRequestBody = WritableInterfaceRequest

// DcimInterfacesBulkUpdateJSONRequestBody defines body for DcimInterfacesBulkUpdate for application/json ContentType.
type DcimInterfacesBulkUpdateJSONRequestBody = DcimInterfacesBulkUpdateJSONBody

// DcimInterfacesPartialUpdateJSONRequestBody defines body for DcimInterfacesPartialUpdate for application/json ContentType.
type DcimInterfacesPartialUpdateJSONRequestBody = PatchedWritableInterfaceRequest

// DcimInterfacesUpdateJSONRequestBody defines body for DcimInterfacesUpdate for application/json ContentType.
type DcimInterfacesUpdateJSONRequestBody = WritableInterfaceRequest

// DcimInterfacesNotesCreateJSONRequestBody defines body for DcimInterfacesNotesCreate for application/json ContentType.
type DcimInterfacesNotesCreateJSONRequestBody = NoteInputRequest

// DcimInventoryItemsBulkDestroyJSONRequestBody defines body for DcimInventoryItemsBulkDestroy for application/json ContentType.
type DcimInventoryItemsBulkDestroyJSONRequestBody = DcimInventoryItemsBulkDestroyJSONBody

// DcimInventoryItemsBulkPartialUpdateJSONRequestBody defines body for DcimInventoryItemsBulkPartialUpdate for application/json ContentType.
type DcimInventoryItemsBulkPartialUpdateJSONRequestBody = DcimInventoryItemsBulkPartialUpdateJSONBody

// DcimInventoryItemsCreateJSONRequestBody defines body for DcimInventoryItemsCreate for application/json ContentType.
type DcimInventoryItemsCreateJSONRequestBody = WritableInventoryItemRequest

// DcimInventoryItemsBulkUpdateJSONRequestBody defines body for DcimInventoryItemsBulkUpdate for application/json ContentType.
type DcimInventoryItemsBulkUpdateJSONRequestBody = DcimInventoryItemsBulkUpdateJSONBody

// DcimInventoryItemsPartialUpdateJSONRequestBody defines body for DcimInventoryItemsPartialUpdate for application/json ContentType.
type DcimInventoryItemsPartialUpdateJSONRequestBody = PatchedWritableInventoryItemRequest

// DcimInventoryItemsUpdateJSONRequestBody defines body for DcimInventoryItemsUpdate for application/json ContentType.
type DcimInventoryItemsUpdateJSONRequestBody = WritableInventoryItemRequest

// DcimInventoryItemsNotesCreateJSONRequestBody defines body for DcimInventoryItemsNotesCreate for application/json ContentType.
type DcimInventoryItemsNotesCreateJSONRequestBody = NoteInputRequest

// DcimLocationTypesBulkDestroyJSONRequestBody defines body for DcimLocationTypesBulkDestroy for application/json ContentType.
type DcimLocationTypesBulkDestroyJSONRequestBody = DcimLocationTypesBulkDestroyJSONBody

// DcimLocationTypesBulkPartialUpdateJSONRequestBody defines body for DcimLocationTypesBulkPartialUpdate for application/json ContentType.
type DcimLocationTypesBulkPartialUpdateJSONRequestBody = DcimLocationTypesBulkPartialUpdateJSONBody

// DcimLocationTypesCreateJSONRequestBody defines body for DcimLocationTypesCreate for application/json ContentType.
type DcimLocationTypesCreateJSONRequestBody = WritableLocationTypeRequest

// DcimLocationTypesBulkUpdateJSONRequestBody defines body for DcimLocationTypesBulkUpdate for application/json ContentType.
type DcimLocationTypesBulkUpdateJSONRequestBody = DcimLocationTypesBulkUpdateJSONBody

// DcimLocationTypesPartialUpdateJSONRequestBody defines body for DcimLocationTypesPartialUpdate for application/json ContentType.
type DcimLocationTypesPartialUpdateJSONRequestBody = PatchedWritableLocationTypeRequest

// DcimLocationTypesUpdateJSONRequestBody defines body for DcimLocationTypesUpdate for application/json ContentType.
type DcimLocationTypesUpdateJSONRequestBody = WritableLocationTypeRequest

// DcimLocationTypesNotesCreateJSONRequestBody defines body for DcimLocationTypesNotesCreate for application/json ContentType.
type DcimLocationTypesNotesCreateJSONRequestBody = NoteInputRequest

// DcimLocationsBulkDestroyJSONRequestBody defines body for DcimLocationsBulkDestroy for application/json ContentType.
type DcimLocationsBulkDestroyJSONRequestBody = DcimLocationsBulkDestroyJSONBody

// DcimLocationsBulkPartialUpdateJSONRequestBody defines body for DcimLocationsBulkPartialUpdate for application/json ContentType.
type DcimLocationsBulkPartialUpdateJSONRequestBody = DcimLocationsBulkPartialUpdateJSONBody

// DcimLocationsCreateJSONRequestBody defines body for DcimLocationsCreate for application/json ContentType.
type DcimLocationsCreateJSONRequestBody = WritableLocationRequest

// DcimLocationsBulkUpdateJSONRequestBody defines body for DcimLocationsBulkUpdate for application/json ContentType.
type DcimLocationsBulkUpdateJSONRequestBody = DcimLocationsBulkUpdateJSONBody

// DcimLocationsPartialUpdateJSONRequestBody defines body for DcimLocationsPartialUpdate for application/json ContentType.
type DcimLocationsPartialUpdateJSONRequestBody = PatchedWritableLocationRequest

// DcimLocationsUpdateJSONRequestBody defines body for DcimLocationsUpdate for application/json ContentType.
type DcimLocationsUpdateJSONRequestBody = WritableLocationRequest

// DcimLocationsNotesCreateJSONRequestBody defines body for DcimLocationsNotesCreate for application/json ContentType.
type DcimLocationsNotesCreateJSONRequestBody = NoteInputRequest

// DcimManufacturersBulkDestroyJSONRequestBody defines body for DcimManufacturersBulkDestroy for application/json ContentType.
type DcimManufacturersBulkDestroyJSONRequestBody = DcimManufacturersBulkDestroyJSONBody

// DcimManufacturersBulkPartialUpdateJSONRequestBody defines body for DcimManufacturersBulkPartialUpdate for application/json ContentType.
type DcimManufacturersBulkPartialUpdateJSONRequestBody = DcimManufacturersBulkPartialUpdateJSONBody

// DcimManufacturersCreateJSONRequestBody defines body for DcimManufacturersCreate for application/json ContentType.
type DcimManufacturersCreateJSONRequestBody = ManufacturerRequest

// DcimManufacturersBulkUpdateJSONRequestBody defines body for DcimManufacturersBulkUpdate for application/json ContentType.
type DcimManufacturersBulkUpdateJSONRequestBody = DcimManufacturersBulkUpdateJSONBody

// DcimManufacturersPartialUpdateJSONRequestBody defines body for DcimManufacturersPartialUpdate for application/json ContentType.
type DcimManufacturersPartialUpdateJSONRequestBody = PatchedManufacturerRequest

// DcimManufacturersUpdateJSONRequestBody defines body for DcimManufacturersUpdate for application/json ContentType.
type DcimManufacturersUpdateJSONRequestBody = ManufacturerRequest

// DcimManufacturersNotesCreateJSONRequestBody defines body for DcimManufacturersNotesCreate for application/json ContentType.
type DcimManufacturersNotesCreateJSONRequestBody = NoteInputRequest

// DcimPlatformsBulkDestroyJSONRequestBody defines body for DcimPlatformsBulkDestroy for application/json ContentType.
type DcimPlatformsBulkDestroyJSONRequestBody = DcimPlatformsBulkDestroyJSONBody

// DcimPlatformsBulkPartialUpdateJSONRequestBody defines body for DcimPlatformsBulkPartialUpdate for application/json ContentType.
type DcimPlatformsBulkPartialUpdateJSONRequestBody = DcimPlatformsBulkPartialUpdateJSONBody

// DcimPlatformsCreateJSONRequestBody defines body for DcimPlatformsCreate for application/json ContentType.
type DcimPlatformsCreateJSONRequestBody = WritablePlatformRequest

// DcimPlatformsBulkUpdateJSONRequestBody defines body for DcimPlatformsBulkUpdate for application/json ContentType.
type DcimPlatformsBulkUpdateJSONRequestBody = DcimPlatformsBulkUpdateJSONBody

// DcimPlatformsPartialUpdateJSONRequestBody defines body for DcimPlatformsPartialUpdate for application/json ContentType.
type DcimPlatformsPartialUpdateJSONRequestBody = PatchedWritablePlatformRequest

// DcimPlatformsUpdateJSONRequestBody defines body for DcimPlatformsUpdate for application/json ContentType.
type DcimPlatformsUpdateJSONRequestBody = WritablePlatformRequest

// DcimPlatformsNotesCreateJSONRequestBody defines body for DcimPlatformsNotesCreate for application/json ContentType.
type DcimPlatformsNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerFeedsBulkDestroyJSONRequestBody defines body for DcimPowerFeedsBulkDestroy for application/json ContentType.
type DcimPowerFeedsBulkDestroyJSONRequestBody = DcimPowerFeedsBulkDestroyJSONBody

// DcimPowerFeedsBulkPartialUpdateJSONRequestBody defines body for DcimPowerFeedsBulkPartialUpdate for application/json ContentType.
type DcimPowerFeedsBulkPartialUpdateJSONRequestBody = DcimPowerFeedsBulkPartialUpdateJSONBody

// DcimPowerFeedsCreateJSONRequestBody defines body for DcimPowerFeedsCreate for application/json ContentType.
type DcimPowerFeedsCreateJSONRequestBody = WritablePowerFeedRequest

// DcimPowerFeedsBulkUpdateJSONRequestBody defines body for DcimPowerFeedsBulkUpdate for application/json ContentType.
type DcimPowerFeedsBulkUpdateJSONRequestBody = DcimPowerFeedsBulkUpdateJSONBody

// DcimPowerFeedsPartialUpdateJSONRequestBody defines body for DcimPowerFeedsPartialUpdate for application/json ContentType.
type DcimPowerFeedsPartialUpdateJSONRequestBody = PatchedWritablePowerFeedRequest

// DcimPowerFeedsUpdateJSONRequestBody defines body for DcimPowerFeedsUpdate for application/json ContentType.
type DcimPowerFeedsUpdateJSONRequestBody = WritablePowerFeedRequest

// DcimPowerFeedsNotesCreateJSONRequestBody defines body for DcimPowerFeedsNotesCreate for application/json ContentType.
type DcimPowerFeedsNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerOutletTemplatesBulkDestroyJSONRequestBody defines body for DcimPowerOutletTemplatesBulkDestroy for application/json ContentType.
type DcimPowerOutletTemplatesBulkDestroyJSONRequestBody = DcimPowerOutletTemplatesBulkDestroyJSONBody

// DcimPowerOutletTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimPowerOutletTemplatesBulkPartialUpdate for application/json ContentType.
type DcimPowerOutletTemplatesBulkPartialUpdateJSONRequestBody = DcimPowerOutletTemplatesBulkPartialUpdateJSONBody

// DcimPowerOutletTemplatesCreateJSONRequestBody defines body for DcimPowerOutletTemplatesCreate for application/json ContentType.
type DcimPowerOutletTemplatesCreateJSONRequestBody = WritablePowerOutletTemplateRequest

// DcimPowerOutletTemplatesBulkUpdateJSONRequestBody defines body for DcimPowerOutletTemplatesBulkUpdate for application/json ContentType.
type DcimPowerOutletTemplatesBulkUpdateJSONRequestBody = DcimPowerOutletTemplatesBulkUpdateJSONBody

// DcimPowerOutletTemplatesPartialUpdateJSONRequestBody defines body for DcimPowerOutletTemplatesPartialUpdate for application/json ContentType.
type DcimPowerOutletTemplatesPartialUpdateJSONRequestBody = PatchedWritablePowerOutletTemplateRequest

// DcimPowerOutletTemplatesUpdateJSONRequestBody defines body for DcimPowerOutletTemplatesUpdate for application/json ContentType.
type DcimPowerOutletTemplatesUpdateJSONRequestBody = WritablePowerOutletTemplateRequest

// DcimPowerOutletTemplatesNotesCreateJSONRequestBody defines body for DcimPowerOutletTemplatesNotesCreate for application/json ContentType.
type DcimPowerOutletTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerOutletsBulkDestroyJSONRequestBody defines body for DcimPowerOutletsBulkDestroy for application/json ContentType.
type DcimPowerOutletsBulkDestroyJSONRequestBody = DcimPowerOutletsBulkDestroyJSONBody

// DcimPowerOutletsBulkPartialUpdateJSONRequestBody defines body for DcimPowerOutletsBulkPartialUpdate for application/json ContentType.
type DcimPowerOutletsBulkPartialUpdateJSONRequestBody = DcimPowerOutletsBulkPartialUpdateJSONBody

// DcimPowerOutletsCreateJSONRequestBody defines body for DcimPowerOutletsCreate for application/json ContentType.
type DcimPowerOutletsCreateJSONRequestBody = WritablePowerOutletRequest

// DcimPowerOutletsBulkUpdateJSONRequestBody defines body for DcimPowerOutletsBulkUpdate for application/json ContentType.
type DcimPowerOutletsBulkUpdateJSONRequestBody = DcimPowerOutletsBulkUpdateJSONBody

// DcimPowerOutletsPartialUpdateJSONRequestBody defines body for DcimPowerOutletsPartialUpdate for application/json ContentType.
type DcimPowerOutletsPartialUpdateJSONRequestBody = PatchedWritablePowerOutletRequest

// DcimPowerOutletsUpdateJSONRequestBody defines body for DcimPowerOutletsUpdate for application/json ContentType.
type DcimPowerOutletsUpdateJSONRequestBody = WritablePowerOutletRequest

// DcimPowerOutletsNotesCreateJSONRequestBody defines body for DcimPowerOutletsNotesCreate for application/json ContentType.
type DcimPowerOutletsNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerPanelsBulkDestroyJSONRequestBody defines body for DcimPowerPanelsBulkDestroy for application/json ContentType.
type DcimPowerPanelsBulkDestroyJSONRequestBody = DcimPowerPanelsBulkDestroyJSONBody

// DcimPowerPanelsBulkPartialUpdateJSONRequestBody defines body for DcimPowerPanelsBulkPartialUpdate for application/json ContentType.
type DcimPowerPanelsBulkPartialUpdateJSONRequestBody = DcimPowerPanelsBulkPartialUpdateJSONBody

// DcimPowerPanelsCreateJSONRequestBody defines body for DcimPowerPanelsCreate for application/json ContentType.
type DcimPowerPanelsCreateJSONRequestBody = WritablePowerPanelRequest

// DcimPowerPanelsBulkUpdateJSONRequestBody defines body for DcimPowerPanelsBulkUpdate for application/json ContentType.
type DcimPowerPanelsBulkUpdateJSONRequestBody = DcimPowerPanelsBulkUpdateJSONBody

// DcimPowerPanelsPartialUpdateJSONRequestBody defines body for DcimPowerPanelsPartialUpdate for application/json ContentType.
type DcimPowerPanelsPartialUpdateJSONRequestBody = PatchedWritablePowerPanelRequest

// DcimPowerPanelsUpdateJSONRequestBody defines body for DcimPowerPanelsUpdate for application/json ContentType.
type DcimPowerPanelsUpdateJSONRequestBody = WritablePowerPanelRequest

// DcimPowerPanelsNotesCreateJSONRequestBody defines body for DcimPowerPanelsNotesCreate for application/json ContentType.
type DcimPowerPanelsNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerPortTemplatesBulkDestroyJSONRequestBody defines body for DcimPowerPortTemplatesBulkDestroy for application/json ContentType.
type DcimPowerPortTemplatesBulkDestroyJSONRequestBody = DcimPowerPortTemplatesBulkDestroyJSONBody

// DcimPowerPortTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimPowerPortTemplatesBulkPartialUpdate for application/json ContentType.
type DcimPowerPortTemplatesBulkPartialUpdateJSONRequestBody = DcimPowerPortTemplatesBulkPartialUpdateJSONBody

// DcimPowerPortTemplatesCreateJSONRequestBody defines body for DcimPowerPortTemplatesCreate for application/json ContentType.
type DcimPowerPortTemplatesCreateJSONRequestBody = WritablePowerPortTemplateRequest

// DcimPowerPortTemplatesBulkUpdateJSONRequestBody defines body for DcimPowerPortTemplatesBulkUpdate for application/json ContentType.
type DcimPowerPortTemplatesBulkUpdateJSONRequestBody = DcimPowerPortTemplatesBulkUpdateJSONBody

// DcimPowerPortTemplatesPartialUpdateJSONRequestBody defines body for DcimPowerPortTemplatesPartialUpdate for application/json ContentType.
type DcimPowerPortTemplatesPartialUpdateJSONRequestBody = PatchedWritablePowerPortTemplateRequest

// DcimPowerPortTemplatesUpdateJSONRequestBody defines body for DcimPowerPortTemplatesUpdate for application/json ContentType.
type DcimPowerPortTemplatesUpdateJSONRequestBody = WritablePowerPortTemplateRequest

// DcimPowerPortTemplatesNotesCreateJSONRequestBody defines body for DcimPowerPortTemplatesNotesCreate for application/json ContentType.
type DcimPowerPortTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimPowerPortsBulkDestroyJSONRequestBody defines body for DcimPowerPortsBulkDestroy for application/json ContentType.
type DcimPowerPortsBulkDestroyJSONRequestBody = DcimPowerPortsBulkDestroyJSONBody

// DcimPowerPortsBulkPartialUpdateJSONRequestBody defines body for DcimPowerPortsBulkPartialUpdate for application/json ContentType.
type DcimPowerPortsBulkPartialUpdateJSONRequestBody = DcimPowerPortsBulkPartialUpdateJSONBody

// DcimPowerPortsCreateJSONRequestBody defines body for DcimPowerPortsCreate for application/json ContentType.
type DcimPowerPortsCreateJSONRequestBody = WritablePowerPortRequest

// DcimPowerPortsBulkUpdateJSONRequestBody defines body for DcimPowerPortsBulkUpdate for application/json ContentType.
type DcimPowerPortsBulkUpdateJSONRequestBody = DcimPowerPortsBulkUpdateJSONBody

// DcimPowerPortsPartialUpdateJSONRequestBody defines body for DcimPowerPortsPartialUpdate for application/json ContentType.
type DcimPowerPortsPartialUpdateJSONRequestBody = PatchedWritablePowerPortRequest

// DcimPowerPortsUpdateJSONRequestBody defines body for DcimPowerPortsUpdate for application/json ContentType.
type DcimPowerPortsUpdateJSONRequestBody = WritablePowerPortRequest

// DcimPowerPortsNotesCreateJSONRequestBody defines body for DcimPowerPortsNotesCreate for application/json ContentType.
type DcimPowerPortsNotesCreateJSONRequestBody = NoteInputRequest

// DcimRackGroupsBulkDestroyJSONRequestBody defines body for DcimRackGroupsBulkDestroy for application/json ContentType.
type DcimRackGroupsBulkDestroyJSONRequestBody = DcimRackGroupsBulkDestroyJSONBody

// DcimRackGroupsBulkPartialUpdateJSONRequestBody defines body for DcimRackGroupsBulkPartialUpdate for application/json ContentType.
type DcimRackGroupsBulkPartialUpdateJSONRequestBody = DcimRackGroupsBulkPartialUpdateJSONBody

// DcimRackGroupsCreateJSONRequestBody defines body for DcimRackGroupsCreate for application/json ContentType.
type DcimRackGroupsCreateJSONRequestBody = WritableRackGroupRequest

// DcimRackGroupsBulkUpdateJSONRequestBody defines body for DcimRackGroupsBulkUpdate for application/json ContentType.
type DcimRackGroupsBulkUpdateJSONRequestBody = DcimRackGroupsBulkUpdateJSONBody

// DcimRackGroupsPartialUpdateJSONRequestBody defines body for DcimRackGroupsPartialUpdate for application/json ContentType.
type DcimRackGroupsPartialUpdateJSONRequestBody = PatchedWritableRackGroupRequest

// DcimRackGroupsUpdateJSONRequestBody defines body for DcimRackGroupsUpdate for application/json ContentType.
type DcimRackGroupsUpdateJSONRequestBody = WritableRackGroupRequest

// DcimRackGroupsNotesCreateJSONRequestBody defines body for DcimRackGroupsNotesCreate for application/json ContentType.
type DcimRackGroupsNotesCreateJSONRequestBody = NoteInputRequest

// DcimRackReservationsBulkDestroyJSONRequestBody defines body for DcimRackReservationsBulkDestroy for application/json ContentType.
type DcimRackReservationsBulkDestroyJSONRequestBody = DcimRackReservationsBulkDestroyJSONBody

// DcimRackReservationsBulkPartialUpdateJSONRequestBody defines body for DcimRackReservationsBulkPartialUpdate for application/json ContentType.
type DcimRackReservationsBulkPartialUpdateJSONRequestBody = DcimRackReservationsBulkPartialUpdateJSONBody

// DcimRackReservationsCreateJSONRequestBody defines body for DcimRackReservationsCreate for application/json ContentType.
type DcimRackReservationsCreateJSONRequestBody = WritableRackReservationRequest

// DcimRackReservationsBulkUpdateJSONRequestBody defines body for DcimRackReservationsBulkUpdate for application/json ContentType.
type DcimRackReservationsBulkUpdateJSONRequestBody = DcimRackReservationsBulkUpdateJSONBody

// DcimRackReservationsPartialUpdateJSONRequestBody defines body for DcimRackReservationsPartialUpdate for application/json ContentType.
type DcimRackReservationsPartialUpdateJSONRequestBody = PatchedWritableRackReservationRequest

// DcimRackReservationsUpdateJSONRequestBody defines body for DcimRackReservationsUpdate for application/json ContentType.
type DcimRackReservationsUpdateJSONRequestBody = WritableRackReservationRequest

// DcimRackReservationsNotesCreateJSONRequestBody defines body for DcimRackReservationsNotesCreate for application/json ContentType.
type DcimRackReservationsNotesCreateJSONRequestBody = NoteInputRequest

// DcimRackRolesBulkDestroyJSONRequestBody defines body for DcimRackRolesBulkDestroy for application/json ContentType.
type DcimRackRolesBulkDestroyJSONRequestBody = DcimRackRolesBulkDestroyJSONBody

// DcimRackRolesBulkPartialUpdateJSONRequestBody defines body for DcimRackRolesBulkPartialUpdate for application/json ContentType.
type DcimRackRolesBulkPartialUpdateJSONRequestBody = DcimRackRolesBulkPartialUpdateJSONBody

// DcimRackRolesCreateJSONRequestBody defines body for DcimRackRolesCreate for application/json ContentType.
type DcimRackRolesCreateJSONRequestBody = RackRoleRequest

// DcimRackRolesBulkUpdateJSONRequestBody defines body for DcimRackRolesBulkUpdate for application/json ContentType.
type DcimRackRolesBulkUpdateJSONRequestBody = DcimRackRolesBulkUpdateJSONBody

// DcimRackRolesPartialUpdateJSONRequestBody defines body for DcimRackRolesPartialUpdate for application/json ContentType.
type DcimRackRolesPartialUpdateJSONRequestBody = PatchedRackRoleRequest

// DcimRackRolesUpdateJSONRequestBody defines body for DcimRackRolesUpdate for application/json ContentType.
type DcimRackRolesUpdateJSONRequestBody = RackRoleRequest

// DcimRackRolesNotesCreateJSONRequestBody defines body for DcimRackRolesNotesCreate for application/json ContentType.
type DcimRackRolesNotesCreateJSONRequestBody = NoteInputRequest

// DcimRacksBulkDestroyJSONRequestBody defines body for DcimRacksBulkDestroy for application/json ContentType.
type DcimRacksBulkDestroyJSONRequestBody = DcimRacksBulkDestroyJSONBody

// DcimRacksBulkPartialUpdateJSONRequestBody defines body for DcimRacksBulkPartialUpdate for application/json ContentType.
type DcimRacksBulkPartialUpdateJSONRequestBody = DcimRacksBulkPartialUpdateJSONBody

// DcimRacksCreateJSONRequestBody defines body for DcimRacksCreate for application/json ContentType.
type DcimRacksCreateJSONRequestBody = WritableRackRequest

// DcimRacksBulkUpdateJSONRequestBody defines body for DcimRacksBulkUpdate for application/json ContentType.
type DcimRacksBulkUpdateJSONRequestBody = DcimRacksBulkUpdateJSONBody

// DcimRacksPartialUpdateJSONRequestBody defines body for DcimRacksPartialUpdate for application/json ContentType.
type DcimRacksPartialUpdateJSONRequestBody = PatchedWritableRackRequest

// DcimRacksUpdateJSONRequestBody defines body for DcimRacksUpdate for application/json ContentType.
type DcimRacksUpdateJSONRequestBody = WritableRackRequest

// DcimRacksNotesCreateJSONRequestBody defines body for DcimRacksNotesCreate for application/json ContentType.
type DcimRacksNotesCreateJSONRequestBody = NoteInputRequest

// DcimRearPortTemplatesBulkDestroyJSONRequestBody defines body for DcimRearPortTemplatesBulkDestroy for application/json ContentType.
type DcimRearPortTemplatesBulkDestroyJSONRequestBody = DcimRearPortTemplatesBulkDestroyJSONBody

// DcimRearPortTemplatesBulkPartialUpdateJSONRequestBody defines body for DcimRearPortTemplatesBulkPartialUpdate for application/json ContentType.
type DcimRearPortTemplatesBulkPartialUpdateJSONRequestBody = DcimRearPortTemplatesBulkPartialUpdateJSONBody

// DcimRearPortTemplatesCreateJSONRequestBody defines body for DcimRearPortTemplatesCreate for application/json ContentType.
type DcimRearPortTemplatesCreateJSONRequestBody = WritableRearPortTemplateRequest

// DcimRearPortTemplatesBulkUpdateJSONRequestBody defines body for DcimRearPortTemplatesBulkUpdate for application/json ContentType.
type DcimRearPortTemplatesBulkUpdateJSONRequestBody = DcimRearPortTemplatesBulkUpdateJSONBody

// DcimRearPortTemplatesPartialUpdateJSONRequestBody defines body for DcimRearPortTemplatesPartialUpdate for application/json ContentType.
type DcimRearPortTemplatesPartialUpdateJSONRequestBody = PatchedWritableRearPortTemplateRequest

// DcimRearPortTemplatesUpdateJSONRequestBody defines body for DcimRearPortTemplatesUpdate for application/json ContentType.
type DcimRearPortTemplatesUpdateJSONRequestBody = WritableRearPortTemplateRequest

// DcimRearPortTemplatesNotesCreateJSONRequestBody defines body for DcimRearPortTemplatesNotesCreate for application/json ContentType.
type DcimRearPortTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// DcimRearPortsBulkDestroyJSONRequestBody defines body for DcimRearPortsBulkDestroy for application/json ContentType.
type DcimRearPortsBulkDestroyJSONRequestBody = DcimRearPortsBulkDestroyJSONBody

// DcimRearPortsBulkPartialUpdateJSONRequestBody defines body for DcimRearPortsBulkPartialUpdate for application/json ContentType.
type DcimRearPortsBulkPartialUpdateJSONRequestBody = DcimRearPortsBulkPartialUpdateJSONBody

// DcimRearPortsCreateJSONRequestBody defines body for DcimRearPortsCreate for application/json ContentType.
type DcimRearPortsCreateJSONRequestBody = WritableRearPortRequest

// DcimRearPortsBulkUpdateJSONRequestBody defines body for DcimRearPortsBulkUpdate for application/json ContentType.
type DcimRearPortsBulkUpdateJSONRequestBody = DcimRearPortsBulkUpdateJSONBody

// DcimRearPortsPartialUpdateJSONRequestBody defines body for DcimRearPortsPartialUpdate for application/json ContentType.
type DcimRearPortsPartialUpdateJSONRequestBody = PatchedWritableRearPortRequest

// DcimRearPortsUpdateJSONRequestBody defines body for DcimRearPortsUpdate for application/json ContentType.
type DcimRearPortsUpdateJSONRequestBody = WritableRearPortRequest

// DcimRearPortsNotesCreateJSONRequestBody defines body for DcimRearPortsNotesCreate for application/json ContentType.
type DcimRearPortsNotesCreateJSONRequestBody = NoteInputRequest

// DcimRegionsBulkDestroyJSONRequestBody defines body for DcimRegionsBulkDestroy for application/json ContentType.
type DcimRegionsBulkDestroyJSONRequestBody = DcimRegionsBulkDestroyJSONBody

// DcimRegionsBulkPartialUpdateJSONRequestBody defines body for DcimRegionsBulkPartialUpdate for application/json ContentType.
type DcimRegionsBulkPartialUpdateJSONRequestBody = DcimRegionsBulkPartialUpdateJSONBody

// DcimRegionsCreateJSONRequestBody defines body for DcimRegionsCreate for application/json ContentType.
type DcimRegionsCreateJSONRequestBody = WritableRegionRequest

// DcimRegionsBulkUpdateJSONRequestBody defines body for DcimRegionsBulkUpdate for application/json ContentType.
type DcimRegionsBulkUpdateJSONRequestBody = DcimRegionsBulkUpdateJSONBody

// DcimRegionsPartialUpdateJSONRequestBody defines body for DcimRegionsPartialUpdate for application/json ContentType.
type DcimRegionsPartialUpdateJSONRequestBody = PatchedWritableRegionRequest

// DcimRegionsUpdateJSONRequestBody defines body for DcimRegionsUpdate for application/json ContentType.
type DcimRegionsUpdateJSONRequestBody = WritableRegionRequest

// DcimRegionsNotesCreateJSONRequestBody defines body for DcimRegionsNotesCreate for application/json ContentType.
type DcimRegionsNotesCreateJSONRequestBody = NoteInputRequest

// DcimSitesBulkDestroyJSONRequestBody defines body for DcimSitesBulkDestroy for application/json ContentType.
type DcimSitesBulkDestroyJSONRequestBody = DcimSitesBulkDestroyJSONBody

// DcimSitesBulkPartialUpdateJSONRequestBody defines body for DcimSitesBulkPartialUpdate for application/json ContentType.
type DcimSitesBulkPartialUpdateJSONRequestBody = DcimSitesBulkPartialUpdateJSONBody

// DcimSitesCreateJSONRequestBody defines body for DcimSitesCreate for application/json ContentType.
type DcimSitesCreateJSONRequestBody = WritableSiteRequest

// DcimSitesBulkUpdateJSONRequestBody defines body for DcimSitesBulkUpdate for application/json ContentType.
type DcimSitesBulkUpdateJSONRequestBody = DcimSitesBulkUpdateJSONBody

// DcimSitesPartialUpdateJSONRequestBody defines body for DcimSitesPartialUpdate for application/json ContentType.
type DcimSitesPartialUpdateJSONRequestBody = PatchedWritableSiteRequest

// DcimSitesUpdateJSONRequestBody defines body for DcimSitesUpdate for application/json ContentType.
type DcimSitesUpdateJSONRequestBody = WritableSiteRequest

// DcimSitesNotesCreateJSONRequestBody defines body for DcimSitesNotesCreate for application/json ContentType.
type DcimSitesNotesCreateJSONRequestBody = NoteInputRequest

// DcimVirtualChassisBulkDestroyJSONRequestBody defines body for DcimVirtualChassisBulkDestroy for application/json ContentType.
type DcimVirtualChassisBulkDestroyJSONRequestBody = DcimVirtualChassisBulkDestroyJSONBody

// DcimVirtualChassisBulkPartialUpdateJSONRequestBody defines body for DcimVirtualChassisBulkPartialUpdate for application/json ContentType.
type DcimVirtualChassisBulkPartialUpdateJSONRequestBody = DcimVirtualChassisBulkPartialUpdateJSONBody

// DcimVirtualChassisCreateJSONRequestBody defines body for DcimVirtualChassisCreate for application/json ContentType.
type DcimVirtualChassisCreateJSONRequestBody = WritableVirtualChassisRequest

// DcimVirtualChassisBulkUpdateJSONRequestBody defines body for DcimVirtualChassisBulkUpdate for application/json ContentType.
type DcimVirtualChassisBulkUpdateJSONRequestBody = DcimVirtualChassisBulkUpdateJSONBody

// DcimVirtualChassisPartialUpdateJSONRequestBody defines body for DcimVirtualChassisPartialUpdate for application/json ContentType.
type DcimVirtualChassisPartialUpdateJSONRequestBody = PatchedWritableVirtualChassisRequest

// DcimVirtualChassisUpdateJSONRequestBody defines body for DcimVirtualChassisUpdate for application/json ContentType.
type DcimVirtualChassisUpdateJSONRequestBody = WritableVirtualChassisRequest

// DcimVirtualChassisNotesCreateJSONRequestBody defines body for DcimVirtualChassisNotesCreate for application/json ContentType.
type DcimVirtualChassisNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasComputedFieldsBulkDestroyJSONRequestBody defines body for ExtrasComputedFieldsBulkDestroy for application/json ContentType.
type ExtrasComputedFieldsBulkDestroyJSONRequestBody = ExtrasComputedFieldsBulkDestroyJSONBody

// ExtrasComputedFieldsBulkPartialUpdateJSONRequestBody defines body for ExtrasComputedFieldsBulkPartialUpdate for application/json ContentType.
type ExtrasComputedFieldsBulkPartialUpdateJSONRequestBody = ExtrasComputedFieldsBulkPartialUpdateJSONBody

// ExtrasComputedFieldsCreateJSONRequestBody defines body for ExtrasComputedFieldsCreate for application/json ContentType.
type ExtrasComputedFieldsCreateJSONRequestBody = ComputedFieldRequest

// ExtrasComputedFieldsBulkUpdateJSONRequestBody defines body for ExtrasComputedFieldsBulkUpdate for application/json ContentType.
type ExtrasComputedFieldsBulkUpdateJSONRequestBody = ExtrasComputedFieldsBulkUpdateJSONBody

// ExtrasComputedFieldsPartialUpdateJSONRequestBody defines body for ExtrasComputedFieldsPartialUpdate for application/json ContentType.
type ExtrasComputedFieldsPartialUpdateJSONRequestBody = PatchedComputedFieldRequest

// ExtrasComputedFieldsUpdateJSONRequestBody defines body for ExtrasComputedFieldsUpdate for application/json ContentType.
type ExtrasComputedFieldsUpdateJSONRequestBody = ComputedFieldRequest

// ExtrasComputedFieldsNotesCreateJSONRequestBody defines body for ExtrasComputedFieldsNotesCreate for application/json ContentType.
type ExtrasComputedFieldsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasConfigContextSchemasBulkDestroyJSONRequestBody defines body for ExtrasConfigContextSchemasBulkDestroy for application/json ContentType.
type ExtrasConfigContextSchemasBulkDestroyJSONRequestBody = ExtrasConfigContextSchemasBulkDestroyJSONBody

// ExtrasConfigContextSchemasBulkPartialUpdateJSONRequestBody defines body for ExtrasConfigContextSchemasBulkPartialUpdate for application/json ContentType.
type ExtrasConfigContextSchemasBulkPartialUpdateJSONRequestBody = ExtrasConfigContextSchemasBulkPartialUpdateJSONBody

// ExtrasConfigContextSchemasCreateJSONRequestBody defines body for ExtrasConfigContextSchemasCreate for application/json ContentType.
type ExtrasConfigContextSchemasCreateJSONRequestBody = ConfigContextSchemaRequest

// ExtrasConfigContextSchemasBulkUpdateJSONRequestBody defines body for ExtrasConfigContextSchemasBulkUpdate for application/json ContentType.
type ExtrasConfigContextSchemasBulkUpdateJSONRequestBody = ExtrasConfigContextSchemasBulkUpdateJSONBody

// ExtrasConfigContextSchemasPartialUpdateJSONRequestBody defines body for ExtrasConfigContextSchemasPartialUpdate for application/json ContentType.
type ExtrasConfigContextSchemasPartialUpdateJSONRequestBody = PatchedConfigContextSchemaRequest

// ExtrasConfigContextSchemasUpdateJSONRequestBody defines body for ExtrasConfigContextSchemasUpdate for application/json ContentType.
type ExtrasConfigContextSchemasUpdateJSONRequestBody = ConfigContextSchemaRequest

// ExtrasConfigContextSchemasNotesCreateJSONRequestBody defines body for ExtrasConfigContextSchemasNotesCreate for application/json ContentType.
type ExtrasConfigContextSchemasNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasConfigContextsBulkDestroyJSONRequestBody defines body for ExtrasConfigContextsBulkDestroy for application/json ContentType.
type ExtrasConfigContextsBulkDestroyJSONRequestBody = ExtrasConfigContextsBulkDestroyJSONBody

// ExtrasConfigContextsBulkPartialUpdateJSONRequestBody defines body for ExtrasConfigContextsBulkPartialUpdate for application/json ContentType.
type ExtrasConfigContextsBulkPartialUpdateJSONRequestBody = ExtrasConfigContextsBulkPartialUpdateJSONBody

// ExtrasConfigContextsCreateJSONRequestBody defines body for ExtrasConfigContextsCreate for application/json ContentType.
type ExtrasConfigContextsCreateJSONRequestBody = WritableConfigContextRequest

// ExtrasConfigContextsBulkUpdateJSONRequestBody defines body for ExtrasConfigContextsBulkUpdate for application/json ContentType.
type ExtrasConfigContextsBulkUpdateJSONRequestBody = ExtrasConfigContextsBulkUpdateJSONBody

// ExtrasConfigContextsPartialUpdateJSONRequestBody defines body for ExtrasConfigContextsPartialUpdate for application/json ContentType.
type ExtrasConfigContextsPartialUpdateJSONRequestBody = PatchedWritableConfigContextRequest

// ExtrasConfigContextsUpdateJSONRequestBody defines body for ExtrasConfigContextsUpdate for application/json ContentType.
type ExtrasConfigContextsUpdateJSONRequestBody = WritableConfigContextRequest

// ExtrasConfigContextsNotesCreateJSONRequestBody defines body for ExtrasConfigContextsNotesCreate for application/json ContentType.
type ExtrasConfigContextsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasCustomFieldChoicesBulkDestroyJSONRequestBody defines body for ExtrasCustomFieldChoicesBulkDestroy for application/json ContentType.
type ExtrasCustomFieldChoicesBulkDestroyJSONRequestBody = ExtrasCustomFieldChoicesBulkDestroyJSONBody

// ExtrasCustomFieldChoicesBulkPartialUpdateJSONRequestBody defines body for ExtrasCustomFieldChoicesBulkPartialUpdate for application/json ContentType.
type ExtrasCustomFieldChoicesBulkPartialUpdateJSONRequestBody = ExtrasCustomFieldChoicesBulkPartialUpdateJSONBody

// ExtrasCustomFieldChoicesCreateJSONRequestBody defines body for ExtrasCustomFieldChoicesCreate for application/json ContentType.
type ExtrasCustomFieldChoicesCreateJSONRequestBody = WritableCustomFieldChoiceRequest

// ExtrasCustomFieldChoicesBulkUpdateJSONRequestBody defines body for ExtrasCustomFieldChoicesBulkUpdate for application/json ContentType.
type ExtrasCustomFieldChoicesBulkUpdateJSONRequestBody = ExtrasCustomFieldChoicesBulkUpdateJSONBody

// ExtrasCustomFieldChoicesPartialUpdateJSONRequestBody defines body for ExtrasCustomFieldChoicesPartialUpdate for application/json ContentType.
type ExtrasCustomFieldChoicesPartialUpdateJSONRequestBody = PatchedWritableCustomFieldChoiceRequest

// ExtrasCustomFieldChoicesUpdateJSONRequestBody defines body for ExtrasCustomFieldChoicesUpdate for application/json ContentType.
type ExtrasCustomFieldChoicesUpdateJSONRequestBody = WritableCustomFieldChoiceRequest

// ExtrasCustomFieldsBulkDestroyJSONRequestBody defines body for ExtrasCustomFieldsBulkDestroy for application/json ContentType.
type ExtrasCustomFieldsBulkDestroyJSONRequestBody = ExtrasCustomFieldsBulkDestroyJSONBody

// ExtrasCustomFieldsBulkPartialUpdateJSONRequestBody defines body for ExtrasCustomFieldsBulkPartialUpdate for application/json ContentType.
type ExtrasCustomFieldsBulkPartialUpdateJSONRequestBody = ExtrasCustomFieldsBulkPartialUpdateJSONBody

// ExtrasCustomFieldsCreateJSONRequestBody defines body for ExtrasCustomFieldsCreate for application/json ContentType.
type ExtrasCustomFieldsCreateJSONRequestBody = CustomFieldSerializerVersion12Request

// ExtrasCustomFieldsBulkUpdateJSONRequestBody defines body for ExtrasCustomFieldsBulkUpdate for application/json ContentType.
type ExtrasCustomFieldsBulkUpdateJSONRequestBody = ExtrasCustomFieldsBulkUpdateJSONBody

// ExtrasCustomFieldsPartialUpdateJSONRequestBody defines body for ExtrasCustomFieldsPartialUpdate for application/json ContentType.
type ExtrasCustomFieldsPartialUpdateJSONRequestBody = PatchedCustomFieldSerializerVersion12Request

// ExtrasCustomFieldsUpdateJSONRequestBody defines body for ExtrasCustomFieldsUpdate for application/json ContentType.
type ExtrasCustomFieldsUpdateJSONRequestBody = CustomFieldSerializerVersion12Request

// ExtrasCustomFieldsNotesCreateJSONRequestBody defines body for ExtrasCustomFieldsNotesCreate for application/json ContentType.
type ExtrasCustomFieldsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasCustomLinksBulkDestroyJSONRequestBody defines body for ExtrasCustomLinksBulkDestroy for application/json ContentType.
type ExtrasCustomLinksBulkDestroyJSONRequestBody = ExtrasCustomLinksBulkDestroyJSONBody

// ExtrasCustomLinksBulkPartialUpdateJSONRequestBody defines body for ExtrasCustomLinksBulkPartialUpdate for application/json ContentType.
type ExtrasCustomLinksBulkPartialUpdateJSONRequestBody = ExtrasCustomLinksBulkPartialUpdateJSONBody

// ExtrasCustomLinksCreateJSONRequestBody defines body for ExtrasCustomLinksCreate for application/json ContentType.
type ExtrasCustomLinksCreateJSONRequestBody = CustomLinkRequest

// ExtrasCustomLinksBulkUpdateJSONRequestBody defines body for ExtrasCustomLinksBulkUpdate for application/json ContentType.
type ExtrasCustomLinksBulkUpdateJSONRequestBody = ExtrasCustomLinksBulkUpdateJSONBody

// ExtrasCustomLinksPartialUpdateJSONRequestBody defines body for ExtrasCustomLinksPartialUpdate for application/json ContentType.
type ExtrasCustomLinksPartialUpdateJSONRequestBody = PatchedCustomLinkRequest

// ExtrasCustomLinksUpdateJSONRequestBody defines body for ExtrasCustomLinksUpdate for application/json ContentType.
type ExtrasCustomLinksUpdateJSONRequestBody = CustomLinkRequest

// ExtrasCustomLinksNotesCreateJSONRequestBody defines body for ExtrasCustomLinksNotesCreate for application/json ContentType.
type ExtrasCustomLinksNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasDynamicGroupMembershipsBulkDestroyJSONRequestBody defines body for ExtrasDynamicGroupMembershipsBulkDestroy for application/json ContentType.
type ExtrasDynamicGroupMembershipsBulkDestroyJSONRequestBody = ExtrasDynamicGroupMembershipsBulkDestroyJSONBody

// ExtrasDynamicGroupMembershipsBulkPartialUpdateJSONRequestBody defines body for ExtrasDynamicGroupMembershipsBulkPartialUpdate for application/json ContentType.
type ExtrasDynamicGroupMembershipsBulkPartialUpdateJSONRequestBody = ExtrasDynamicGroupMembershipsBulkPartialUpdateJSONBody

// ExtrasDynamicGroupMembershipsCreateJSONRequestBody defines body for ExtrasDynamicGroupMembershipsCreate for application/json ContentType.
type ExtrasDynamicGroupMembershipsCreateJSONRequestBody = WritableDynamicGroupMembershipRequest

// ExtrasDynamicGroupMembershipsBulkUpdateJSONRequestBody defines body for ExtrasDynamicGroupMembershipsBulkUpdate for application/json ContentType.
type ExtrasDynamicGroupMembershipsBulkUpdateJSONRequestBody = ExtrasDynamicGroupMembershipsBulkUpdateJSONBody

// ExtrasDynamicGroupMembershipsPartialUpdateJSONRequestBody defines body for ExtrasDynamicGroupMembershipsPartialUpdate for application/json ContentType.
type ExtrasDynamicGroupMembershipsPartialUpdateJSONRequestBody = PatchedWritableDynamicGroupMembershipRequest

// ExtrasDynamicGroupMembershipsUpdateJSONRequestBody defines body for ExtrasDynamicGroupMembershipsUpdate for application/json ContentType.
type ExtrasDynamicGroupMembershipsUpdateJSONRequestBody = WritableDynamicGroupMembershipRequest

// ExtrasDynamicGroupsBulkDestroyJSONRequestBody defines body for ExtrasDynamicGroupsBulkDestroy for application/json ContentType.
type ExtrasDynamicGroupsBulkDestroyJSONRequestBody = ExtrasDynamicGroupsBulkDestroyJSONBody

// ExtrasDynamicGroupsBulkPartialUpdateJSONRequestBody defines body for ExtrasDynamicGroupsBulkPartialUpdate for application/json ContentType.
type ExtrasDynamicGroupsBulkPartialUpdateJSONRequestBody = ExtrasDynamicGroupsBulkPartialUpdateJSONBody

// ExtrasDynamicGroupsCreateJSONRequestBody defines body for ExtrasDynamicGroupsCreate for application/json ContentType.
type ExtrasDynamicGroupsCreateJSONRequestBody = DynamicGroupRequest

// ExtrasDynamicGroupsBulkUpdateJSONRequestBody defines body for ExtrasDynamicGroupsBulkUpdate for application/json ContentType.
type ExtrasDynamicGroupsBulkUpdateJSONRequestBody = ExtrasDynamicGroupsBulkUpdateJSONBody

// ExtrasDynamicGroupsPartialUpdateJSONRequestBody defines body for ExtrasDynamicGroupsPartialUpdate for application/json ContentType.
type ExtrasDynamicGroupsPartialUpdateJSONRequestBody = PatchedDynamicGroupRequest

// ExtrasDynamicGroupsUpdateJSONRequestBody defines body for ExtrasDynamicGroupsUpdate for application/json ContentType.
type ExtrasDynamicGroupsUpdateJSONRequestBody = DynamicGroupRequest

// ExtrasDynamicGroupsNotesCreateJSONRequestBody defines body for ExtrasDynamicGroupsNotesCreate for application/json ContentType.
type ExtrasDynamicGroupsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasExportTemplatesBulkDestroyJSONRequestBody defines body for ExtrasExportTemplatesBulkDestroy for application/json ContentType.
type ExtrasExportTemplatesBulkDestroyJSONRequestBody = ExtrasExportTemplatesBulkDestroyJSONBody

// ExtrasExportTemplatesBulkPartialUpdateJSONRequestBody defines body for ExtrasExportTemplatesBulkPartialUpdate for application/json ContentType.
type ExtrasExportTemplatesBulkPartialUpdateJSONRequestBody = ExtrasExportTemplatesBulkPartialUpdateJSONBody

// ExtrasExportTemplatesCreateJSONRequestBody defines body for ExtrasExportTemplatesCreate for application/json ContentType.
type ExtrasExportTemplatesCreateJSONRequestBody = ExportTemplateRequest

// ExtrasExportTemplatesBulkUpdateJSONRequestBody defines body for ExtrasExportTemplatesBulkUpdate for application/json ContentType.
type ExtrasExportTemplatesBulkUpdateJSONRequestBody = ExtrasExportTemplatesBulkUpdateJSONBody

// ExtrasExportTemplatesPartialUpdateJSONRequestBody defines body for ExtrasExportTemplatesPartialUpdate for application/json ContentType.
type ExtrasExportTemplatesPartialUpdateJSONRequestBody = PatchedExportTemplateRequest

// ExtrasExportTemplatesUpdateJSONRequestBody defines body for ExtrasExportTemplatesUpdate for application/json ContentType.
type ExtrasExportTemplatesUpdateJSONRequestBody = ExportTemplateRequest

// ExtrasExportTemplatesNotesCreateJSONRequestBody defines body for ExtrasExportTemplatesNotesCreate for application/json ContentType.
type ExtrasExportTemplatesNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasGitRepositoriesBulkDestroyJSONRequestBody defines body for ExtrasGitRepositoriesBulkDestroy for application/json ContentType.
type ExtrasGitRepositoriesBulkDestroyJSONRequestBody = ExtrasGitRepositoriesBulkDestroyJSONBody

// ExtrasGitRepositoriesBulkPartialUpdateJSONRequestBody defines body for ExtrasGitRepositoriesBulkPartialUpdate for application/json ContentType.
type ExtrasGitRepositoriesBulkPartialUpdateJSONRequestBody = ExtrasGitRepositoriesBulkPartialUpdateJSONBody

// ExtrasGitRepositoriesCreateJSONRequestBody defines body for ExtrasGitRepositoriesCreate for application/json ContentType.
type ExtrasGitRepositoriesCreateJSONRequestBody = WritableGitRepositoryRequest

// ExtrasGitRepositoriesBulkUpdateJSONRequestBody defines body for ExtrasGitRepositoriesBulkUpdate for application/json ContentType.
type ExtrasGitRepositoriesBulkUpdateJSONRequestBody = ExtrasGitRepositoriesBulkUpdateJSONBody

// ExtrasGitRepositoriesPartialUpdateJSONRequestBody defines body for ExtrasGitRepositoriesPartialUpdate for application/json ContentType.
type ExtrasGitRepositoriesPartialUpdateJSONRequestBody = PatchedWritableGitRepositoryRequest

// ExtrasGitRepositoriesUpdateJSONRequestBody defines body for ExtrasGitRepositoriesUpdate for application/json ContentType.
type ExtrasGitRepositoriesUpdateJSONRequestBody = WritableGitRepositoryRequest

// ExtrasGitRepositoriesNotesCreateJSONRequestBody defines body for ExtrasGitRepositoriesNotesCreate for application/json ContentType.
type ExtrasGitRepositoriesNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasGitRepositoriesSyncCreateJSONRequestBody defines body for ExtrasGitRepositoriesSyncCreate for application/json ContentType.
type ExtrasGitRepositoriesSyncCreateJSONRequestBody = GitRepositoryRequest

// ExtrasGraphqlQueriesBulkDestroyJSONRequestBody defines body for ExtrasGraphqlQueriesBulkDestroy for application/json ContentType.
type ExtrasGraphqlQueriesBulkDestroyJSONRequestBody = ExtrasGraphqlQueriesBulkDestroyJSONBody

// ExtrasGraphqlQueriesBulkPartialUpdateJSONRequestBody defines body for ExtrasGraphqlQueriesBulkPartialUpdate for application/json ContentType.
type ExtrasGraphqlQueriesBulkPartialUpdateJSONRequestBody = ExtrasGraphqlQueriesBulkPartialUpdateJSONBody

// ExtrasGraphqlQueriesCreateJSONRequestBody defines body for ExtrasGraphqlQueriesCreate for application/json ContentType.
type ExtrasGraphqlQueriesCreateJSONRequestBody = GraphQLQueryRequest

// ExtrasGraphqlQueriesBulkUpdateJSONRequestBody defines body for ExtrasGraphqlQueriesBulkUpdate for application/json ContentType.
type ExtrasGraphqlQueriesBulkUpdateJSONRequestBody = ExtrasGraphqlQueriesBulkUpdateJSONBody

// ExtrasGraphqlQueriesPartialUpdateJSONRequestBody defines body for ExtrasGraphqlQueriesPartialUpdate for application/json ContentType.
type ExtrasGraphqlQueriesPartialUpdateJSONRequestBody = PatchedGraphQLQueryRequest

// ExtrasGraphqlQueriesUpdateJSONRequestBody defines body for ExtrasGraphqlQueriesUpdate for application/json ContentType.
type ExtrasGraphqlQueriesUpdateJSONRequestBody = GraphQLQueryRequest

// ExtrasGraphqlQueriesNotesCreateJSONRequestBody defines body for ExtrasGraphqlQueriesNotesCreate for application/json ContentType.
type ExtrasGraphqlQueriesNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasGraphqlQueriesRunCreateJSONRequestBody defines body for ExtrasGraphqlQueriesRunCreate for application/json ContentType.
type ExtrasGraphqlQueriesRunCreateJSONRequestBody = GraphQLQueryInputRequest

// ExtrasImageAttachmentsBulkDestroyJSONRequestBody defines body for ExtrasImageAttachmentsBulkDestroy for application/json ContentType.
type ExtrasImageAttachmentsBulkDestroyJSONRequestBody = ExtrasImageAttachmentsBulkDestroyJSONBody

// ExtrasImageAttachmentsBulkPartialUpdateJSONRequestBody defines body for ExtrasImageAttachmentsBulkPartialUpdate for application/json ContentType.
type ExtrasImageAttachmentsBulkPartialUpdateJSONRequestBody = ExtrasImageAttachmentsBulkPartialUpdateJSONBody

// ExtrasImageAttachmentsCreateJSONRequestBody defines body for ExtrasImageAttachmentsCreate for application/json ContentType.
type ExtrasImageAttachmentsCreateJSONRequestBody = ImageAttachmentRequest

// ExtrasImageAttachmentsBulkUpdateJSONRequestBody defines body for ExtrasImageAttachmentsBulkUpdate for application/json ContentType.
type ExtrasImageAttachmentsBulkUpdateJSONRequestBody = ExtrasImageAttachmentsBulkUpdateJSONBody

// ExtrasImageAttachmentsPartialUpdateJSONRequestBody defines body for ExtrasImageAttachmentsPartialUpdate for application/json ContentType.
type ExtrasImageAttachmentsPartialUpdateJSONRequestBody = PatchedImageAttachmentRequest

// ExtrasImageAttachmentsUpdateJSONRequestBody defines body for ExtrasImageAttachmentsUpdate for application/json ContentType.
type ExtrasImageAttachmentsUpdateJSONRequestBody = ImageAttachmentRequest

// ExtrasJobHooksBulkDestroyJSONRequestBody defines body for ExtrasJobHooksBulkDestroy for application/json ContentType.
type ExtrasJobHooksBulkDestroyJSONRequestBody = ExtrasJobHooksBulkDestroyJSONBody

// ExtrasJobHooksBulkPartialUpdateJSONRequestBody defines body for ExtrasJobHooksBulkPartialUpdate for application/json ContentType.
type ExtrasJobHooksBulkPartialUpdateJSONRequestBody = ExtrasJobHooksBulkPartialUpdateJSONBody

// ExtrasJobHooksCreateJSONRequestBody defines body for ExtrasJobHooksCreate for application/json ContentType.
type ExtrasJobHooksCreateJSONRequestBody = JobHookRequest

// ExtrasJobHooksBulkUpdateJSONRequestBody defines body for ExtrasJobHooksBulkUpdate for application/json ContentType.
type ExtrasJobHooksBulkUpdateJSONRequestBody = ExtrasJobHooksBulkUpdateJSONBody

// ExtrasJobHooksPartialUpdateJSONRequestBody defines body for ExtrasJobHooksPartialUpdate for application/json ContentType.
type ExtrasJobHooksPartialUpdateJSONRequestBody = PatchedJobHookRequest

// ExtrasJobHooksUpdateJSONRequestBody defines body for ExtrasJobHooksUpdate for application/json ContentType.
type ExtrasJobHooksUpdateJSONRequestBody = JobHookRequest

// ExtrasJobHooksNotesCreateJSONRequestBody defines body for ExtrasJobHooksNotesCreate for application/json ContentType.
type ExtrasJobHooksNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasJobResultsBulkDestroyJSONRequestBody defines body for ExtrasJobResultsBulkDestroy for application/json ContentType.
type ExtrasJobResultsBulkDestroyJSONRequestBody = ExtrasJobResultsBulkDestroyJSONBody

// ExtrasJobsBulkDestroyJSONRequestBody defines body for ExtrasJobsBulkDestroy for application/json ContentType.
type ExtrasJobsBulkDestroyJSONRequestBody = ExtrasJobsBulkDestroyJSONBody

// ExtrasJobsBulkPartialUpdateJSONRequestBody defines body for ExtrasJobsBulkPartialUpdate for application/json ContentType.
type ExtrasJobsBulkPartialUpdateJSONRequestBody = ExtrasJobsBulkPartialUpdateJSONBody

// ExtrasJobsBulkUpdateJSONRequestBody defines body for ExtrasJobsBulkUpdate for application/json ContentType.
type ExtrasJobsBulkUpdateJSONRequestBody = ExtrasJobsBulkUpdateJSONBody

// ExtrasJobsRunDeprecatedJSONRequestBody defines body for ExtrasJobsRunDeprecated for application/json ContentType.
type ExtrasJobsRunDeprecatedJSONRequestBody = JobInputRequest

// ExtrasJobsRunDeprecatedMultipartRequestBody defines body for ExtrasJobsRunDeprecated for multipart/form-data ContentType.
type ExtrasJobsRunDeprecatedMultipartRequestBody = JobInputRequest

// ExtrasJobsPartialUpdateJSONRequestBody defines body for ExtrasJobsPartialUpdate for application/json ContentType.
type ExtrasJobsPartialUpdateJSONRequestBody = PatchedJobRequest

// ExtrasJobsUpdateJSONRequestBody defines body for ExtrasJobsUpdate for application/json ContentType.
type ExtrasJobsUpdateJSONRequestBody = JobRequest

// ExtrasJobsNotesCreateJSONRequestBody defines body for ExtrasJobsNotesCreate for application/json ContentType.
type ExtrasJobsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasJobsRunCreateJSONRequestBody defines body for ExtrasJobsRunCreate for application/json ContentType.
type ExtrasJobsRunCreateJSONRequestBody = JobInputRequest

// ExtrasJobsRunCreateMultipartRequestBody defines body for ExtrasJobsRunCreate for multipart/form-data ContentType.
type ExtrasJobsRunCreateMultipartRequestBody = JobMultiPartInputRequest

// ExtrasNotesBulkDestroyJSONRequestBody defines body for ExtrasNotesBulkDestroy for application/json ContentType.
type ExtrasNotesBulkDestroyJSONRequestBody = ExtrasNotesBulkDestroyJSONBody

// ExtrasNotesBulkPartialUpdateJSONRequestBody defines body for ExtrasNotesBulkPartialUpdate for application/json ContentType.
type ExtrasNotesBulkPartialUpdateJSONRequestBody = ExtrasNotesBulkPartialUpdateJSONBody

// ExtrasNotesCreateJSONRequestBody defines body for ExtrasNotesCreate for application/json ContentType.
type ExtrasNotesCreateJSONRequestBody = NoteRequest

// ExtrasNotesBulkUpdateJSONRequestBody defines body for ExtrasNotesBulkUpdate for application/json ContentType.
type ExtrasNotesBulkUpdateJSONRequestBody = ExtrasNotesBulkUpdateJSONBody

// ExtrasNotesPartialUpdateJSONRequestBody defines body for ExtrasNotesPartialUpdate for application/json ContentType.
type ExtrasNotesPartialUpdateJSONRequestBody = PatchedNoteRequest

// ExtrasNotesUpdateJSONRequestBody defines body for ExtrasNotesUpdate for application/json ContentType.
type ExtrasNotesUpdateJSONRequestBody = NoteRequest

// ExtrasRelationshipAssociationsBulkDestroyJSONRequestBody defines body for ExtrasRelationshipAssociationsBulkDestroy for application/json ContentType.
type ExtrasRelationshipAssociationsBulkDestroyJSONRequestBody = ExtrasRelationshipAssociationsBulkDestroyJSONBody

// ExtrasRelationshipAssociationsBulkPartialUpdateJSONRequestBody defines body for ExtrasRelationshipAssociationsBulkPartialUpdate for application/json ContentType.
type ExtrasRelationshipAssociationsBulkPartialUpdateJSONRequestBody = ExtrasRelationshipAssociationsBulkPartialUpdateJSONBody

// ExtrasRelationshipAssociationsCreateJSONRequestBody defines body for ExtrasRelationshipAssociationsCreate for application/json ContentType.
type ExtrasRelationshipAssociationsCreateJSONRequestBody = WritableRelationshipAssociationRequest

// ExtrasRelationshipAssociationsBulkUpdateJSONRequestBody defines body for ExtrasRelationshipAssociationsBulkUpdate for application/json ContentType.
type ExtrasRelationshipAssociationsBulkUpdateJSONRequestBody = ExtrasRelationshipAssociationsBulkUpdateJSONBody

// ExtrasRelationshipAssociationsPartialUpdateJSONRequestBody defines body for ExtrasRelationshipAssociationsPartialUpdate for application/json ContentType.
type ExtrasRelationshipAssociationsPartialUpdateJSONRequestBody = PatchedWritableRelationshipAssociationRequest

// ExtrasRelationshipAssociationsUpdateJSONRequestBody defines body for ExtrasRelationshipAssociationsUpdate for application/json ContentType.
type ExtrasRelationshipAssociationsUpdateJSONRequestBody = WritableRelationshipAssociationRequest

// ExtrasRelationshipsBulkDestroyJSONRequestBody defines body for ExtrasRelationshipsBulkDestroy for application/json ContentType.
type ExtrasRelationshipsBulkDestroyJSONRequestBody = ExtrasRelationshipsBulkDestroyJSONBody

// ExtrasRelationshipsBulkPartialUpdateJSONRequestBody defines body for ExtrasRelationshipsBulkPartialUpdate for application/json ContentType.
type ExtrasRelationshipsBulkPartialUpdateJSONRequestBody = ExtrasRelationshipsBulkPartialUpdateJSONBody

// ExtrasRelationshipsCreateJSONRequestBody defines body for ExtrasRelationshipsCreate for application/json ContentType.
type ExtrasRelationshipsCreateJSONRequestBody = RelationshipRequest

// ExtrasRelationshipsBulkUpdateJSONRequestBody defines body for ExtrasRelationshipsBulkUpdate for application/json ContentType.
type ExtrasRelationshipsBulkUpdateJSONRequestBody = ExtrasRelationshipsBulkUpdateJSONBody

// ExtrasRelationshipsPartialUpdateJSONRequestBody defines body for ExtrasRelationshipsPartialUpdate for application/json ContentType.
type ExtrasRelationshipsPartialUpdateJSONRequestBody = PatchedRelationshipRequest

// ExtrasRelationshipsUpdateJSONRequestBody defines body for ExtrasRelationshipsUpdate for application/json ContentType.
type ExtrasRelationshipsUpdateJSONRequestBody = RelationshipRequest

// ExtrasRelationshipsNotesCreateJSONRequestBody defines body for ExtrasRelationshipsNotesCreate for application/json ContentType.
type ExtrasRelationshipsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasSecretsGroupsAssociationsBulkDestroyJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsBulkDestroy for application/json ContentType.
type ExtrasSecretsGroupsAssociationsBulkDestroyJSONRequestBody = ExtrasSecretsGroupsAssociationsBulkDestroyJSONBody

// ExtrasSecretsGroupsAssociationsBulkPartialUpdateJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsBulkPartialUpdate for application/json ContentType.
type ExtrasSecretsGroupsAssociationsBulkPartialUpdateJSONRequestBody = ExtrasSecretsGroupsAssociationsBulkPartialUpdateJSONBody

// ExtrasSecretsGroupsAssociationsCreateJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsCreate for application/json ContentType.
type ExtrasSecretsGroupsAssociationsCreateJSONRequestBody = WritableSecretsGroupAssociationRequest

// ExtrasSecretsGroupsAssociationsBulkUpdateJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsBulkUpdate for application/json ContentType.
type ExtrasSecretsGroupsAssociationsBulkUpdateJSONRequestBody = ExtrasSecretsGroupsAssociationsBulkUpdateJSONBody

// ExtrasSecretsGroupsAssociationsPartialUpdateJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsPartialUpdate for application/json ContentType.
type ExtrasSecretsGroupsAssociationsPartialUpdateJSONRequestBody = PatchedWritableSecretsGroupAssociationRequest

// ExtrasSecretsGroupsAssociationsUpdateJSONRequestBody defines body for ExtrasSecretsGroupsAssociationsUpdate for application/json ContentType.
type ExtrasSecretsGroupsAssociationsUpdateJSONRequestBody = WritableSecretsGroupAssociationRequest

// ExtrasSecretsGroupsBulkDestroyJSONRequestBody defines body for ExtrasSecretsGroupsBulkDestroy for application/json ContentType.
type ExtrasSecretsGroupsBulkDestroyJSONRequestBody = ExtrasSecretsGroupsBulkDestroyJSONBody

// ExtrasSecretsGroupsBulkPartialUpdateJSONRequestBody defines body for ExtrasSecretsGroupsBulkPartialUpdate for application/json ContentType.
type ExtrasSecretsGroupsBulkPartialUpdateJSONRequestBody = ExtrasSecretsGroupsBulkPartialUpdateJSONBody

// ExtrasSecretsGroupsCreateJSONRequestBody defines body for ExtrasSecretsGroupsCreate for application/json ContentType.
type ExtrasSecretsGroupsCreateJSONRequestBody = SecretsGroupRequest

// ExtrasSecretsGroupsBulkUpdateJSONRequestBody defines body for ExtrasSecretsGroupsBulkUpdate for application/json ContentType.
type ExtrasSecretsGroupsBulkUpdateJSONRequestBody = ExtrasSecretsGroupsBulkUpdateJSONBody

// ExtrasSecretsGroupsPartialUpdateJSONRequestBody defines body for ExtrasSecretsGroupsPartialUpdate for application/json ContentType.
type ExtrasSecretsGroupsPartialUpdateJSONRequestBody = PatchedSecretsGroupRequest

// ExtrasSecretsGroupsUpdateJSONRequestBody defines body for ExtrasSecretsGroupsUpdate for application/json ContentType.
type ExtrasSecretsGroupsUpdateJSONRequestBody = SecretsGroupRequest

// ExtrasSecretsGroupsNotesCreateJSONRequestBody defines body for ExtrasSecretsGroupsNotesCreate for application/json ContentType.
type ExtrasSecretsGroupsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasSecretsBulkDestroyJSONRequestBody defines body for ExtrasSecretsBulkDestroy for application/json ContentType.
type ExtrasSecretsBulkDestroyJSONRequestBody = ExtrasSecretsBulkDestroyJSONBody

// ExtrasSecretsBulkPartialUpdateJSONRequestBody defines body for ExtrasSecretsBulkPartialUpdate for application/json ContentType.
type ExtrasSecretsBulkPartialUpdateJSONRequestBody = ExtrasSecretsBulkPartialUpdateJSONBody

// ExtrasSecretsCreateJSONRequestBody defines body for ExtrasSecretsCreate for application/json ContentType.
type ExtrasSecretsCreateJSONRequestBody = SecretRequest

// ExtrasSecretsBulkUpdateJSONRequestBody defines body for ExtrasSecretsBulkUpdate for application/json ContentType.
type ExtrasSecretsBulkUpdateJSONRequestBody = ExtrasSecretsBulkUpdateJSONBody

// ExtrasSecretsPartialUpdateJSONRequestBody defines body for ExtrasSecretsPartialUpdate for application/json ContentType.
type ExtrasSecretsPartialUpdateJSONRequestBody = PatchedSecretRequest

// ExtrasSecretsUpdateJSONRequestBody defines body for ExtrasSecretsUpdate for application/json ContentType.
type ExtrasSecretsUpdateJSONRequestBody = SecretRequest

// ExtrasSecretsNotesCreateJSONRequestBody defines body for ExtrasSecretsNotesCreate for application/json ContentType.
type ExtrasSecretsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasStatusesBulkDestroyJSONRequestBody defines body for ExtrasStatusesBulkDestroy for application/json ContentType.
type ExtrasStatusesBulkDestroyJSONRequestBody = ExtrasStatusesBulkDestroyJSONBody

// ExtrasStatusesBulkPartialUpdateJSONRequestBody defines body for ExtrasStatusesBulkPartialUpdate for application/json ContentType.
type ExtrasStatusesBulkPartialUpdateJSONRequestBody = ExtrasStatusesBulkPartialUpdateJSONBody

// ExtrasStatusesCreateJSONRequestBody defines body for ExtrasStatusesCreate for application/json ContentType.
type ExtrasStatusesCreateJSONRequestBody = StatusRequest

// ExtrasStatusesBulkUpdateJSONRequestBody defines body for ExtrasStatusesBulkUpdate for application/json ContentType.
type ExtrasStatusesBulkUpdateJSONRequestBody = ExtrasStatusesBulkUpdateJSONBody

// ExtrasStatusesPartialUpdateJSONRequestBody defines body for ExtrasStatusesPartialUpdate for application/json ContentType.
type ExtrasStatusesPartialUpdateJSONRequestBody = PatchedStatusRequest

// ExtrasStatusesUpdateJSONRequestBody defines body for ExtrasStatusesUpdate for application/json ContentType.
type ExtrasStatusesUpdateJSONRequestBody = StatusRequest

// ExtrasStatusesNotesCreateJSONRequestBody defines body for ExtrasStatusesNotesCreate for application/json ContentType.
type ExtrasStatusesNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasTagsBulkDestroyJSONRequestBody defines body for ExtrasTagsBulkDestroy for application/json ContentType.
type ExtrasTagsBulkDestroyJSONRequestBody = ExtrasTagsBulkDestroyJSONBody

// ExtrasTagsBulkPartialUpdateJSONRequestBody defines body for ExtrasTagsBulkPartialUpdate for application/json ContentType.
type ExtrasTagsBulkPartialUpdateJSONRequestBody = ExtrasTagsBulkPartialUpdateJSONBody

// ExtrasTagsCreateJSONRequestBody defines body for ExtrasTagsCreate for application/json ContentType.
type ExtrasTagsCreateJSONRequestBody = TagSerializerVersion13Request

// ExtrasTagsBulkUpdateJSONRequestBody defines body for ExtrasTagsBulkUpdate for application/json ContentType.
type ExtrasTagsBulkUpdateJSONRequestBody = ExtrasTagsBulkUpdateJSONBody

// ExtrasTagsPartialUpdateJSONRequestBody defines body for ExtrasTagsPartialUpdate for application/json ContentType.
type ExtrasTagsPartialUpdateJSONRequestBody = PatchedTagSerializerVersion13Request

// ExtrasTagsUpdateJSONRequestBody defines body for ExtrasTagsUpdate for application/json ContentType.
type ExtrasTagsUpdateJSONRequestBody = TagSerializerVersion13Request

// ExtrasTagsNotesCreateJSONRequestBody defines body for ExtrasTagsNotesCreate for application/json ContentType.
type ExtrasTagsNotesCreateJSONRequestBody = NoteInputRequest

// ExtrasWebhooksBulkDestroyJSONRequestBody defines body for ExtrasWebhooksBulkDestroy for application/json ContentType.
type ExtrasWebhooksBulkDestroyJSONRequestBody = ExtrasWebhooksBulkDestroyJSONBody

// ExtrasWebhooksBulkPartialUpdateJSONRequestBody defines body for ExtrasWebhooksBulkPartialUpdate for application/json ContentType.
type ExtrasWebhooksBulkPartialUpdateJSONRequestBody = ExtrasWebhooksBulkPartialUpdateJSONBody

// ExtrasWebhooksCreateJSONRequestBody defines body for ExtrasWebhooksCreate for application/json ContentType.
type ExtrasWebhooksCreateJSONRequestBody = WebhookRequest

// ExtrasWebhooksBulkUpdateJSONRequestBody defines body for ExtrasWebhooksBulkUpdate for application/json ContentType.
type ExtrasWebhooksBulkUpdateJSONRequestBody = ExtrasWebhooksBulkUpdateJSONBody

// ExtrasWebhooksPartialUpdateJSONRequestBody defines body for ExtrasWebhooksPartialUpdate for application/json ContentType.
type ExtrasWebhooksPartialUpdateJSONRequestBody = PatchedWebhookRequest

// ExtrasWebhooksUpdateJSONRequestBody defines body for ExtrasWebhooksUpdate for application/json ContentType.
type ExtrasWebhooksUpdateJSONRequestBody = WebhookRequest

// ExtrasWebhooksNotesCreateJSONRequestBody defines body for ExtrasWebhooksNotesCreate for application/json ContentType.
type ExtrasWebhooksNotesCreateJSONRequestBody = NoteInputRequest

// GraphqlCreateJSONRequestBody defines body for GraphqlCreate for application/json ContentType.
type GraphqlCreateJSONRequestBody = GraphQLAPIRequest

// IpamAggregatesBulkDestroyJSONRequestBody defines body for IpamAggregatesBulkDestroy for application/json ContentType.
type IpamAggregatesBulkDestroyJSONRequestBody = IpamAggregatesBulkDestroyJSONBody

// IpamAggregatesBulkPartialUpdateJSONRequestBody defines body for IpamAggregatesBulkPartialUpdate for application/json ContentType.
type IpamAggregatesBulkPartialUpdateJSONRequestBody = IpamAggregatesBulkPartialUpdateJSONBody

// IpamAggregatesCreateJSONRequestBody defines body for IpamAggregatesCreate for application/json ContentType.
type IpamAggregatesCreateJSONRequestBody = WritableAggregateRequest

// IpamAggregatesBulkUpdateJSONRequestBody defines body for IpamAggregatesBulkUpdate for application/json ContentType.
type IpamAggregatesBulkUpdateJSONRequestBody = IpamAggregatesBulkUpdateJSONBody

// IpamAggregatesPartialUpdateJSONRequestBody defines body for IpamAggregatesPartialUpdate for application/json ContentType.
type IpamAggregatesPartialUpdateJSONRequestBody = PatchedWritableAggregateRequest

// IpamAggregatesUpdateJSONRequestBody defines body for IpamAggregatesUpdate for application/json ContentType.
type IpamAggregatesUpdateJSONRequestBody = WritableAggregateRequest

// IpamAggregatesNotesCreateJSONRequestBody defines body for IpamAggregatesNotesCreate for application/json ContentType.
type IpamAggregatesNotesCreateJSONRequestBody = NoteInputRequest

// IpamIpAddressesBulkDestroyJSONRequestBody defines body for IpamIpAddressesBulkDestroy for application/json ContentType.
type IpamIpAddressesBulkDestroyJSONRequestBody = IpamIpAddressesBulkDestroyJSONBody

// IpamIpAddressesBulkPartialUpdateJSONRequestBody defines body for IpamIpAddressesBulkPartialUpdate for application/json ContentType.
type IpamIpAddressesBulkPartialUpdateJSONRequestBody = IpamIpAddressesBulkPartialUpdateJSONBody

// IpamIpAddressesCreateJSONRequestBody defines body for IpamIpAddressesCreate for application/json ContentType.
type IpamIpAddressesCreateJSONRequestBody = WritableIPAddressRequest

// IpamIpAddressesBulkUpdateJSONRequestBody defines body for IpamIpAddressesBulkUpdate for application/json ContentType.
type IpamIpAddressesBulkUpdateJSONRequestBody = IpamIpAddressesBulkUpdateJSONBody

// IpamIpAddressesPartialUpdateJSONRequestBody defines body for IpamIpAddressesPartialUpdate for application/json ContentType.
type IpamIpAddressesPartialUpdateJSONRequestBody = PatchedWritableIPAddressRequest

// IpamIpAddressesUpdateJSONRequestBody defines body for IpamIpAddressesUpdate for application/json ContentType.
type IpamIpAddressesUpdateJSONRequestBody = WritableIPAddressRequest

// IpamIpAddressesNotesCreateJSONRequestBody defines body for IpamIpAddressesNotesCreate for application/json ContentType.
type IpamIpAddressesNotesCreateJSONRequestBody = NoteInputRequest

// IpamPrefixesBulkDestroyJSONRequestBody defines body for IpamPrefixesBulkDestroy for application/json ContentType.
type IpamPrefixesBulkDestroyJSONRequestBody = IpamPrefixesBulkDestroyJSONBody

// IpamPrefixesBulkPartialUpdateJSONRequestBody defines body for IpamPrefixesBulkPartialUpdate for application/json ContentType.
type IpamPrefixesBulkPartialUpdateJSONRequestBody = IpamPrefixesBulkPartialUpdateJSONBody

// IpamPrefixesCreateJSONRequestBody defines body for IpamPrefixesCreate for application/json ContentType.
type IpamPrefixesCreateJSONRequestBody = WritablePrefixRequest

// IpamPrefixesBulkUpdateJSONRequestBody defines body for IpamPrefixesBulkUpdate for application/json ContentType.
type IpamPrefixesBulkUpdateJSONRequestBody = IpamPrefixesBulkUpdateJSONBody

// IpamPrefixesPartialUpdateJSONRequestBody defines body for IpamPrefixesPartialUpdate for application/json ContentType.
type IpamPrefixesPartialUpdateJSONRequestBody = PatchedWritablePrefixRequest

// IpamPrefixesUpdateJSONRequestBody defines body for IpamPrefixesUpdate for application/json ContentType.
type IpamPrefixesUpdateJSONRequestBody = WritablePrefixRequest

// IpamPrefixesAvailablePrefixesCreateJSONRequestBody defines body for IpamPrefixesAvailablePrefixesCreate for application/json ContentType.
type IpamPrefixesAvailablePrefixesCreateJSONRequestBody = PrefixLengthRequest

// IpamPrefixesNotesCreateJSONRequestBody defines body for IpamPrefixesNotesCreate for application/json ContentType.
type IpamPrefixesNotesCreateJSONRequestBody = NoteInputRequest

// IpamRirsBulkDestroyJSONRequestBody defines body for IpamRirsBulkDestroy for application/json ContentType.
type IpamRirsBulkDestroyJSONRequestBody = IpamRirsBulkDestroyJSONBody

// IpamRirsBulkPartialUpdateJSONRequestBody defines body for IpamRirsBulkPartialUpdate for application/json ContentType.
type IpamRirsBulkPartialUpdateJSONRequestBody = IpamRirsBulkPartialUpdateJSONBody

// IpamRirsCreateJSONRequestBody defines body for IpamRirsCreate for application/json ContentType.
type IpamRirsCreateJSONRequestBody = RIRRequest

// IpamRirsBulkUpdateJSONRequestBody defines body for IpamRirsBulkUpdate for application/json ContentType.
type IpamRirsBulkUpdateJSONRequestBody = IpamRirsBulkUpdateJSONBody

// IpamRirsPartialUpdateJSONRequestBody defines body for IpamRirsPartialUpdate for application/json ContentType.
type IpamRirsPartialUpdateJSONRequestBody = PatchedRIRRequest

// IpamRirsUpdateJSONRequestBody defines body for IpamRirsUpdate for application/json ContentType.
type IpamRirsUpdateJSONRequestBody = RIRRequest

// IpamRirsNotesCreateJSONRequestBody defines body for IpamRirsNotesCreate for application/json ContentType.
type IpamRirsNotesCreateJSONRequestBody = NoteInputRequest

// IpamRolesBulkDestroyJSONRequestBody defines body for IpamRolesBulkDestroy for application/json ContentType.
type IpamRolesBulkDestroyJSONRequestBody = IpamRolesBulkDestroyJSONBody

// IpamRolesBulkPartialUpdateJSONRequestBody defines body for IpamRolesBulkPartialUpdate for application/json ContentType.
type IpamRolesBulkPartialUpdateJSONRequestBody = IpamRolesBulkPartialUpdateJSONBody

// IpamRolesCreateJSONRequestBody defines body for IpamRolesCreate for application/json ContentType.
type IpamRolesCreateJSONRequestBody = RoleRequest

// IpamRolesBulkUpdateJSONRequestBody defines body for IpamRolesBulkUpdate for application/json ContentType.
type IpamRolesBulkUpdateJSONRequestBody = IpamRolesBulkUpdateJSONBody

// IpamRolesPartialUpdateJSONRequestBody defines body for IpamRolesPartialUpdate for application/json ContentType.
type IpamRolesPartialUpdateJSONRequestBody = PatchedRoleRequest

// IpamRolesUpdateJSONRequestBody defines body for IpamRolesUpdate for application/json ContentType.
type IpamRolesUpdateJSONRequestBody = RoleRequest

// IpamRolesNotesCreateJSONRequestBody defines body for IpamRolesNotesCreate for application/json ContentType.
type IpamRolesNotesCreateJSONRequestBody = NoteInputRequest

// IpamRouteTargetsBulkDestroyJSONRequestBody defines body for IpamRouteTargetsBulkDestroy for application/json ContentType.
type IpamRouteTargetsBulkDestroyJSONRequestBody = IpamRouteTargetsBulkDestroyJSONBody

// IpamRouteTargetsBulkPartialUpdateJSONRequestBody defines body for IpamRouteTargetsBulkPartialUpdate for application/json ContentType.
type IpamRouteTargetsBulkPartialUpdateJSONRequestBody = IpamRouteTargetsBulkPartialUpdateJSONBody

// IpamRouteTargetsCreateJSONRequestBody defines body for IpamRouteTargetsCreate for application/json ContentType.
type IpamRouteTargetsCreateJSONRequestBody = WritableRouteTargetRequest

// IpamRouteTargetsBulkUpdateJSONRequestBody defines body for IpamRouteTargetsBulkUpdate for application/json ContentType.
type IpamRouteTargetsBulkUpdateJSONRequestBody = IpamRouteTargetsBulkUpdateJSONBody

// IpamRouteTargetsPartialUpdateJSONRequestBody defines body for IpamRouteTargetsPartialUpdate for application/json ContentType.
type IpamRouteTargetsPartialUpdateJSONRequestBody = PatchedWritableRouteTargetRequest

// IpamRouteTargetsUpdateJSONRequestBody defines body for IpamRouteTargetsUpdate for application/json ContentType.
type IpamRouteTargetsUpdateJSONRequestBody = WritableRouteTargetRequest

// IpamRouteTargetsNotesCreateJSONRequestBody defines body for IpamRouteTargetsNotesCreate for application/json ContentType.
type IpamRouteTargetsNotesCreateJSONRequestBody = NoteInputRequest

// IpamServicesBulkDestroyJSONRequestBody defines body for IpamServicesBulkDestroy for application/json ContentType.
type IpamServicesBulkDestroyJSONRequestBody = IpamServicesBulkDestroyJSONBody

// IpamServicesBulkPartialUpdateJSONRequestBody defines body for IpamServicesBulkPartialUpdate for application/json ContentType.
type IpamServicesBulkPartialUpdateJSONRequestBody = IpamServicesBulkPartialUpdateJSONBody

// IpamServicesCreateJSONRequestBody defines body for IpamServicesCreate for application/json ContentType.
type IpamServicesCreateJSONRequestBody = WritableServiceRequest

// IpamServicesBulkUpdateJSONRequestBody defines body for IpamServicesBulkUpdate for application/json ContentType.
type IpamServicesBulkUpdateJSONRequestBody = IpamServicesBulkUpdateJSONBody

// IpamServicesPartialUpdateJSONRequestBody defines body for IpamServicesPartialUpdate for application/json ContentType.
type IpamServicesPartialUpdateJSONRequestBody = PatchedWritableServiceRequest

// IpamServicesUpdateJSONRequestBody defines body for IpamServicesUpdate for application/json ContentType.
type IpamServicesUpdateJSONRequestBody = WritableServiceRequest

// IpamServicesNotesCreateJSONRequestBody defines body for IpamServicesNotesCreate for application/json ContentType.
type IpamServicesNotesCreateJSONRequestBody = NoteInputRequest

// IpamVlanGroupsBulkDestroyJSONRequestBody defines body for IpamVlanGroupsBulkDestroy for application/json ContentType.
type IpamVlanGroupsBulkDestroyJSONRequestBody = IpamVlanGroupsBulkDestroyJSONBody

// IpamVlanGroupsBulkPartialUpdateJSONRequestBody defines body for IpamVlanGroupsBulkPartialUpdate for application/json ContentType.
type IpamVlanGroupsBulkPartialUpdateJSONRequestBody = IpamVlanGroupsBulkPartialUpdateJSONBody

// IpamVlanGroupsCreateJSONRequestBody defines body for IpamVlanGroupsCreate for application/json ContentType.
type IpamVlanGroupsCreateJSONRequestBody = WritableVLANGroupRequest

// IpamVlanGroupsBulkUpdateJSONRequestBody defines body for IpamVlanGroupsBulkUpdate for application/json ContentType.
type IpamVlanGroupsBulkUpdateJSONRequestBody = IpamVlanGroupsBulkUpdateJSONBody

// IpamVlanGroupsPartialUpdateJSONRequestBody defines body for IpamVlanGroupsPartialUpdate for application/json ContentType.
type IpamVlanGroupsPartialUpdateJSONRequestBody = PatchedWritableVLANGroupRequest

// IpamVlanGroupsUpdateJSONRequestBody defines body for IpamVlanGroupsUpdate for application/json ContentType.
type IpamVlanGroupsUpdateJSONRequestBody = WritableVLANGroupRequest

// IpamVlanGroupsNotesCreateJSONRequestBody defines body for IpamVlanGroupsNotesCreate for application/json ContentType.
type IpamVlanGroupsNotesCreateJSONRequestBody = NoteInputRequest

// IpamVlansBulkDestroyJSONRequestBody defines body for IpamVlansBulkDestroy for application/json ContentType.
type IpamVlansBulkDestroyJSONRequestBody = IpamVlansBulkDestroyJSONBody

// IpamVlansBulkPartialUpdateJSONRequestBody defines body for IpamVlansBulkPartialUpdate for application/json ContentType.
type IpamVlansBulkPartialUpdateJSONRequestBody = IpamVlansBulkPartialUpdateJSONBody

// IpamVlansCreateJSONRequestBody defines body for IpamVlansCreate for application/json ContentType.
type IpamVlansCreateJSONRequestBody = WritableVLANRequest

// IpamVlansBulkUpdateJSONRequestBody defines body for IpamVlansBulkUpdate for application/json ContentType.
type IpamVlansBulkUpdateJSONRequestBody = IpamVlansBulkUpdateJSONBody

// IpamVlansPartialUpdateJSONRequestBody defines body for IpamVlansPartialUpdate for application/json ContentType.
type IpamVlansPartialUpdateJSONRequestBody = PatchedWritableVLANRequest

// IpamVlansUpdateJSONRequestBody defines body for IpamVlansUpdate for application/json ContentType.
type IpamVlansUpdateJSONRequestBody = WritableVLANRequest

// IpamVlansNotesCreateJSONRequestBody defines body for IpamVlansNotesCreate for application/json ContentType.
type IpamVlansNotesCreateJSONRequestBody = NoteInputRequest

// IpamVrfsBulkDestroyJSONRequestBody defines body for IpamVrfsBulkDestroy for application/json ContentType.
type IpamVrfsBulkDestroyJSONRequestBody = IpamVrfsBulkDestroyJSONBody

// IpamVrfsBulkPartialUpdateJSONRequestBody defines body for IpamVrfsBulkPartialUpdate for application/json ContentType.
type IpamVrfsBulkPartialUpdateJSONRequestBody = IpamVrfsBulkPartialUpdateJSONBody

// IpamVrfsCreateJSONRequestBody defines body for IpamVrfsCreate for application/json ContentType.
type IpamVrfsCreateJSONRequestBody = WritableVRFRequest

// IpamVrfsBulkUpdateJSONRequestBody defines body for IpamVrfsBulkUpdate for application/json ContentType.
type IpamVrfsBulkUpdateJSONRequestBody = IpamVrfsBulkUpdateJSONBody

// IpamVrfsPartialUpdateJSONRequestBody defines body for IpamVrfsPartialUpdate for application/json ContentType.
type IpamVrfsPartialUpdateJSONRequestBody = PatchedWritableVRFRequest

// IpamVrfsUpdateJSONRequestBody defines body for IpamVrfsUpdate for application/json ContentType.
type IpamVrfsUpdateJSONRequestBody = WritableVRFRequest

// IpamVrfsNotesCreateJSONRequestBody defines body for IpamVrfsNotesCreate for application/json ContentType.
type IpamVrfsNotesCreateJSONRequestBody = NoteInputRequest

// PluginsBgpAddressFamiliesBulkDestroyJSONRequestBody defines body for PluginsBgpAddressFamiliesBulkDestroy for application/json ContentType.
type PluginsBgpAddressFamiliesBulkDestroyJSONRequestBody = PluginsBgpAddressFamiliesBulkDestroyJSONBody

// PluginsBgpAddressFamiliesBulkPartialUpdateJSONRequestBody defines body for PluginsBgpAddressFamiliesBulkPartialUpdate for application/json ContentType.
type PluginsBgpAddressFamiliesBulkPartialUpdateJSONRequestBody = PluginsBgpAddressFamiliesBulkPartialUpdateJSONBody

// PluginsBgpAddressFamiliesCreateJSONRequestBody defines body for PluginsBgpAddressFamiliesCreate for application/json ContentType.
type PluginsBgpAddressFamiliesCreateJSONRequestBody = WritableAddressFamilyRequest

// PluginsBgpAddressFamiliesBulkUpdateJSONRequestBody defines body for PluginsBgpAddressFamiliesBulkUpdate for application/json ContentType.
type PluginsBgpAddressFamiliesBulkUpdateJSONRequestBody = PluginsBgpAddressFamiliesBulkUpdateJSONBody

// PluginsBgpAddressFamiliesPartialUpdateJSONRequestBody defines body for PluginsBgpAddressFamiliesPartialUpdate for application/json ContentType.
type PluginsBgpAddressFamiliesPartialUpdateJSONRequestBody = PatchedWritableAddressFamilyRequest

// PluginsBgpAddressFamiliesUpdateJSONRequestBody defines body for PluginsBgpAddressFamiliesUpdate for application/json ContentType.
type PluginsBgpAddressFamiliesUpdateJSONRequestBody = WritableAddressFamilyRequest

// PluginsBgpAutonomousSystemsBulkDestroyJSONRequestBody defines body for PluginsBgpAutonomousSystemsBulkDestroy for application/json ContentType.
type PluginsBgpAutonomousSystemsBulkDestroyJSONRequestBody = PluginsBgpAutonomousSystemsBulkDestroyJSONBody

// PluginsBgpAutonomousSystemsBulkPartialUpdateJSONRequestBody defines body for PluginsBgpAutonomousSystemsBulkPartialUpdate for application/json ContentType.
type PluginsBgpAutonomousSystemsBulkPartialUpdateJSONRequestBody = PluginsBgpAutonomousSystemsBulkPartialUpdateJSONBody

// PluginsBgpAutonomousSystemsCreateJSONRequestBody defines body for PluginsBgpAutonomousSystemsCreate for application/json ContentType.
type PluginsBgpAutonomousSystemsCreateJSONRequestBody = WritableAutonomousSystemRequest

// PluginsBgpAutonomousSystemsBulkUpdateJSONRequestBody defines body for PluginsBgpAutonomousSystemsBulkUpdate for application/json ContentType.
type PluginsBgpAutonomousSystemsBulkUpdateJSONRequestBody = PluginsBgpAutonomousSystemsBulkUpdateJSONBody

// PluginsBgpAutonomousSystemsPartialUpdateJSONRequestBody defines body for PluginsBgpAutonomousSystemsPartialUpdate for application/json ContentType.
type PluginsBgpAutonomousSystemsPartialUpdateJSONRequestBody = PatchedWritableAutonomousSystemRequest

// PluginsBgpAutonomousSystemsUpdateJSONRequestBody defines body for PluginsBgpAutonomousSystemsUpdate for application/json ContentType.
type PluginsBgpAutonomousSystemsUpdateJSONRequestBody = WritableAutonomousSystemRequest

// PluginsBgpPeerEndpointsBulkDestroyJSONRequestBody defines body for PluginsBgpPeerEndpointsBulkDestroy for application/json ContentType.
type PluginsBgpPeerEndpointsBulkDestroyJSONRequestBody = PluginsBgpPeerEndpointsBulkDestroyJSONBody

// PluginsBgpPeerEndpointsBulkPartialUpdateJSONRequestBody defines body for PluginsBgpPeerEndpointsBulkPartialUpdate for application/json ContentType.
type PluginsBgpPeerEndpointsBulkPartialUpdateJSONRequestBody = PluginsBgpPeerEndpointsBulkPartialUpdateJSONBody

// PluginsBgpPeerEndpointsCreateJSONRequestBody defines body for PluginsBgpPeerEndpointsCreate for application/json ContentType.
type PluginsBgpPeerEndpointsCreateJSONRequestBody = WritablePeerEndpointRequest

// PluginsBgpPeerEndpointsBulkUpdateJSONRequestBody defines body for PluginsBgpPeerEndpointsBulkUpdate for application/json ContentType.
type PluginsBgpPeerEndpointsBulkUpdateJSONRequestBody = PluginsBgpPeerEndpointsBulkUpdateJSONBody

// PluginsBgpPeerEndpointsPartialUpdateJSONRequestBody defines body for PluginsBgpPeerEndpointsPartialUpdate for application/json ContentType.
type PluginsBgpPeerEndpointsPartialUpdateJSONRequestBody = PatchedWritablePeerEndpointRequest

// PluginsBgpPeerEndpointsUpdateJSONRequestBody defines body for PluginsBgpPeerEndpointsUpdate for application/json ContentType.
type PluginsBgpPeerEndpointsUpdateJSONRequestBody = WritablePeerEndpointRequest

// PluginsBgpPeerGroupTemplatesBulkDestroyJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesBulkDestroy for application/json ContentType.
type PluginsBgpPeerGroupTemplatesBulkDestroyJSONRequestBody = PluginsBgpPeerGroupTemplatesBulkDestroyJSONBody

// PluginsBgpPeerGroupTemplatesBulkPartialUpdateJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesBulkPartialUpdate for application/json ContentType.
type PluginsBgpPeerGroupTemplatesBulkPartialUpdateJSONRequestBody = PluginsBgpPeerGroupTemplatesBulkPartialUpdateJSONBody

// PluginsBgpPeerGroupTemplatesCreateJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesCreate for application/json ContentType.
type PluginsBgpPeerGroupTemplatesCreateJSONRequestBody = WritablePeerGroupTemplateRequest

// PluginsBgpPeerGroupTemplatesBulkUpdateJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesBulkUpdate for application/json ContentType.
type PluginsBgpPeerGroupTemplatesBulkUpdateJSONRequestBody = PluginsBgpPeerGroupTemplatesBulkUpdateJSONBody

// PluginsBgpPeerGroupTemplatesPartialUpdateJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesPartialUpdate for application/json ContentType.
type PluginsBgpPeerGroupTemplatesPartialUpdateJSONRequestBody = PatchedWritablePeerGroupTemplateRequest

// PluginsBgpPeerGroupTemplatesUpdateJSONRequestBody defines body for PluginsBgpPeerGroupTemplatesUpdate for application/json ContentType.
type PluginsBgpPeerGroupTemplatesUpdateJSONRequestBody = WritablePeerGroupTemplateRequest

// PluginsBgpPeerGroupsBulkDestroyJSONRequestBody defines body for PluginsBgpPeerGroupsBulkDestroy for application/json ContentType.
type PluginsBgpPeerGroupsBulkDestroyJSONRequestBody = PluginsBgpPeerGroupsBulkDestroyJSONBody

// PluginsBgpPeerGroupsBulkPartialUpdateJSONRequestBody defines body for PluginsBgpPeerGroupsBulkPartialUpdate for application/json ContentType.
type PluginsBgpPeerGroupsBulkPartialUpdateJSONRequestBody = PluginsBgpPeerGroupsBulkPartialUpdateJSONBody

// PluginsBgpPeerGroupsCreateJSONRequestBody defines body for PluginsBgpPeerGroupsCreate for application/json ContentType.
type PluginsBgpPeerGroupsCreateJSONRequestBody = WritablePeerGroupRequest

// PluginsBgpPeerGroupsBulkUpdateJSONRequestBody defines body for PluginsBgpPeerGroupsBulkUpdate for application/json ContentType.
type PluginsBgpPeerGroupsBulkUpdateJSONRequestBody = PluginsBgpPeerGroupsBulkUpdateJSONBody

// PluginsBgpPeerGroupsPartialUpdateJSONRequestBody defines body for PluginsBgpPeerGroupsPartialUpdate for application/json ContentType.
type PluginsBgpPeerGroupsPartialUpdateJSONRequestBody = PatchedWritablePeerGroupRequest

// PluginsBgpPeerGroupsUpdateJSONRequestBody defines body for PluginsBgpPeerGroupsUpdate for application/json ContentType.
type PluginsBgpPeerGroupsUpdateJSONRequestBody = WritablePeerGroupRequest

// PluginsBgpPeeringRolesBulkDestroyJSONRequestBody defines body for PluginsBgpPeeringRolesBulkDestroy for application/json ContentType.
type PluginsBgpPeeringRolesBulkDestroyJSONRequestBody = PluginsBgpPeeringRolesBulkDestroyJSONBody

// PluginsBgpPeeringRolesBulkPartialUpdateJSONRequestBody defines body for PluginsBgpPeeringRolesBulkPartialUpdate for application/json ContentType.
type PluginsBgpPeeringRolesBulkPartialUpdateJSONRequestBody = PluginsBgpPeeringRolesBulkPartialUpdateJSONBody

// PluginsBgpPeeringRolesCreateJSONRequestBody defines body for PluginsBgpPeeringRolesCreate for application/json ContentType.
type PluginsBgpPeeringRolesCreateJSONRequestBody = PeeringRoleRequest

// PluginsBgpPeeringRolesBulkUpdateJSONRequestBody defines body for PluginsBgpPeeringRolesBulkUpdate for application/json ContentType.
type PluginsBgpPeeringRolesBulkUpdateJSONRequestBody = PluginsBgpPeeringRolesBulkUpdateJSONBody

// PluginsBgpPeeringRolesPartialUpdateJSONRequestBody defines body for PluginsBgpPeeringRolesPartialUpdate for application/json ContentType.
type PluginsBgpPeeringRolesPartialUpdateJSONRequestBody = PatchedPeeringRoleRequest

// PluginsBgpPeeringRolesUpdateJSONRequestBody defines body for PluginsBgpPeeringRolesUpdate for application/json ContentType.
type PluginsBgpPeeringRolesUpdateJSONRequestBody = PeeringRoleRequest

// PluginsBgpPeeringsBulkDestroyJSONRequestBody defines body for PluginsBgpPeeringsBulkDestroy for application/json ContentType.
type PluginsBgpPeeringsBulkDestroyJSONRequestBody = PluginsBgpPeeringsBulkDestroyJSONBody

// PluginsBgpPeeringsBulkPartialUpdateJSONRequestBody defines body for PluginsBgpPeeringsBulkPartialUpdate for application/json ContentType.
type PluginsBgpPeeringsBulkPartialUpdateJSONRequestBody = PluginsBgpPeeringsBulkPartialUpdateJSONBody

// PluginsBgpPeeringsCreateJSONRequestBody defines body for PluginsBgpPeeringsCreate for application/json ContentType.
type PluginsBgpPeeringsCreateJSONRequestBody = PeeringRequest

// PluginsBgpPeeringsBulkUpdateJSONRequestBody defines body for PluginsBgpPeeringsBulkUpdate for application/json ContentType.
type PluginsBgpPeeringsBulkUpdateJSONRequestBody = PluginsBgpPeeringsBulkUpdateJSONBody

// PluginsBgpPeeringsPartialUpdateJSONRequestBody defines body for PluginsBgpPeeringsPartialUpdate for application/json ContentType.
type PluginsBgpPeeringsPartialUpdateJSONRequestBody = PatchedPeeringRequest

// PluginsBgpPeeringsUpdateJSONRequestBody defines body for PluginsBgpPeeringsUpdate for application/json ContentType.
type PluginsBgpPeeringsUpdateJSONRequestBody = PeeringRequest

// PluginsBgpRoutingInstancesBulkDestroyJSONRequestBody defines body for PluginsBgpRoutingInstancesBulkDestroy for application/json ContentType.
type PluginsBgpRoutingInstancesBulkDestroyJSONRequestBody = PluginsBgpRoutingInstancesBulkDestroyJSONBody

// PluginsBgpRoutingInstancesBulkPartialUpdateJSONRequestBody defines body for PluginsBgpRoutingInstancesBulkPartialUpdate for application/json ContentType.
type PluginsBgpRoutingInstancesBulkPartialUpdateJSONRequestBody = PluginsBgpRoutingInstancesBulkPartialUpdateJSONBody

// PluginsBgpRoutingInstancesCreateJSONRequestBody defines body for PluginsBgpRoutingInstancesCreate for application/json ContentType.
type PluginsBgpRoutingInstancesCreateJSONRequestBody = WritableBGPRoutingInstanceRequest

// PluginsBgpRoutingInstancesBulkUpdateJSONRequestBody defines body for PluginsBgpRoutingInstancesBulkUpdate for application/json ContentType.
type PluginsBgpRoutingInstancesBulkUpdateJSONRequestBody = PluginsBgpRoutingInstancesBulkUpdateJSONBody

// PluginsBgpRoutingInstancesPartialUpdateJSONRequestBody defines body for PluginsBgpRoutingInstancesPartialUpdate for application/json ContentType.
type PluginsBgpRoutingInstancesPartialUpdateJSONRequestBody = PatchedWritableBGPRoutingInstanceRequest

// PluginsBgpRoutingInstancesUpdateJSONRequestBody defines body for PluginsBgpRoutingInstancesUpdate for application/json ContentType.
type PluginsBgpRoutingInstancesUpdateJSONRequestBody = WritableBGPRoutingInstanceRequest

// PluginsChatopsAccessgrantBulkDestroyJSONRequestBody defines body for PluginsChatopsAccessgrantBulkDestroy for application/json ContentType.
type PluginsChatopsAccessgrantBulkDestroyJSONRequestBody = PluginsChatopsAccessgrantBulkDestroyJSONBody

// PluginsChatopsAccessgrantBulkPartialUpdateJSONRequestBody defines body for PluginsChatopsAccessgrantBulkPartialUpdate for application/json ContentType.
type PluginsChatopsAccessgrantBulkPartialUpdateJSONRequestBody = PluginsChatopsAccessgrantBulkPartialUpdateJSONBody

// PluginsChatopsAccessgrantCreateJSONRequestBody defines body for PluginsChatopsAccessgrantCreate for application/json ContentType.
type PluginsChatopsAccessgrantCreateJSONRequestBody = AccessGrantRequest

// PluginsChatopsAccessgrantBulkUpdateJSONRequestBody defines body for PluginsChatopsAccessgrantBulkUpdate for application/json ContentType.
type PluginsChatopsAccessgrantBulkUpdateJSONRequestBody = PluginsChatopsAccessgrantBulkUpdateJSONBody

// PluginsChatopsAccessgrantPartialUpdateJSONRequestBody defines body for PluginsChatopsAccessgrantPartialUpdate for application/json ContentType.
type PluginsChatopsAccessgrantPartialUpdateJSONRequestBody = PatchedAccessGrantRequest

// PluginsChatopsAccessgrantUpdateJSONRequestBody defines body for PluginsChatopsAccessgrantUpdate for application/json ContentType.
type PluginsChatopsAccessgrantUpdateJSONRequestBody = AccessGrantRequest

// PluginsChatopsCommandtokenBulkDestroyJSONRequestBody defines body for PluginsChatopsCommandtokenBulkDestroy for application/json ContentType.
type PluginsChatopsCommandtokenBulkDestroyJSONRequestBody = PluginsChatopsCommandtokenBulkDestroyJSONBody

// PluginsChatopsCommandtokenBulkPartialUpdateJSONRequestBody defines body for PluginsChatopsCommandtokenBulkPartialUpdate for application/json ContentType.
type PluginsChatopsCommandtokenBulkPartialUpdateJSONRequestBody = PluginsChatopsCommandtokenBulkPartialUpdateJSONBody

// PluginsChatopsCommandtokenCreateJSONRequestBody defines body for PluginsChatopsCommandtokenCreate for application/json ContentType.
type PluginsChatopsCommandtokenCreateJSONRequestBody = CommandTokenRequest

// PluginsChatopsCommandtokenBulkUpdateJSONRequestBody defines body for PluginsChatopsCommandtokenBulkUpdate for application/json ContentType.
type PluginsChatopsCommandtokenBulkUpdateJSONRequestBody = PluginsChatopsCommandtokenBulkUpdateJSONBody

// PluginsChatopsCommandtokenPartialUpdateJSONRequestBody defines body for PluginsChatopsCommandtokenPartialUpdate for application/json ContentType.
type PluginsChatopsCommandtokenPartialUpdateJSONRequestBody = PatchedCommandTokenRequest

// PluginsChatopsCommandtokenUpdateJSONRequestBody defines body for PluginsChatopsCommandtokenUpdate for application/json ContentType.
type PluginsChatopsCommandtokenUpdateJSONRequestBody = CommandTokenRequest

// PluginsCircuitMaintenanceCircuitimpactBulkDestroyJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactBulkDestroy for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactBulkDestroyJSONRequestBody = PluginsCircuitMaintenanceCircuitimpactBulkDestroyJSONBody

// PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdateJSONRequestBody = PluginsCircuitMaintenanceCircuitimpactBulkPartialUpdateJSONBody

// PluginsCircuitMaintenanceCircuitimpactCreateJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactCreate for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactCreateJSONRequestBody = CircuitMaintenanceCircuitImpactRequest

// PluginsCircuitMaintenanceCircuitimpactBulkUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactBulkUpdate for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactBulkUpdateJSONRequestBody = PluginsCircuitMaintenanceCircuitimpactBulkUpdateJSONBody

// PluginsCircuitMaintenanceCircuitimpactPartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactPartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactPartialUpdateJSONRequestBody = PatchedCircuitMaintenanceCircuitImpactRequest

// PluginsCircuitMaintenanceCircuitimpactUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceCircuitimpactUpdate for application/json ContentType.
type PluginsCircuitMaintenanceCircuitimpactUpdateJSONRequestBody = CircuitMaintenanceCircuitImpactRequest

// PluginsCircuitMaintenanceMaintenanceBulkDestroyJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenanceBulkDestroy for application/json ContentType.
type PluginsCircuitMaintenanceMaintenanceBulkDestroyJSONRequestBody = PluginsCircuitMaintenanceMaintenanceBulkDestroyJSONBody

// PluginsCircuitMaintenanceMaintenanceBulkPartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenanceBulkPartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceMaintenanceBulkPartialUpdateJSONRequestBody = PluginsCircuitMaintenanceMaintenanceBulkPartialUpdateJSONBody

// PluginsCircuitMaintenanceMaintenanceCreateJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenanceCreate for application/json ContentType.
type PluginsCircuitMaintenanceMaintenanceCreateJSONRequestBody = CircuitMaintenanceRequest

// PluginsCircuitMaintenanceMaintenanceBulkUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenanceBulkUpdate for application/json ContentType.
type PluginsCircuitMaintenanceMaintenanceBulkUpdateJSONRequestBody = PluginsCircuitMaintenanceMaintenanceBulkUpdateJSONBody

// PluginsCircuitMaintenanceMaintenancePartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenancePartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceMaintenancePartialUpdateJSONRequestBody = PatchedCircuitMaintenanceRequest

// PluginsCircuitMaintenanceMaintenanceUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceMaintenanceUpdate for application/json ContentType.
type PluginsCircuitMaintenanceMaintenanceUpdateJSONRequestBody = CircuitMaintenanceRequest

// PluginsCircuitMaintenanceNoteBulkDestroyJSONRequestBody defines body for PluginsCircuitMaintenanceNoteBulkDestroy for application/json ContentType.
type PluginsCircuitMaintenanceNoteBulkDestroyJSONRequestBody = PluginsCircuitMaintenanceNoteBulkDestroyJSONBody

// PluginsCircuitMaintenanceNoteBulkPartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceNoteBulkPartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceNoteBulkPartialUpdateJSONRequestBody = PluginsCircuitMaintenanceNoteBulkPartialUpdateJSONBody

// PluginsCircuitMaintenanceNoteCreateJSONRequestBody defines body for PluginsCircuitMaintenanceNoteCreate for application/json ContentType.
type PluginsCircuitMaintenanceNoteCreateJSONRequestBody = NoteRequest

// PluginsCircuitMaintenanceNoteBulkUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceNoteBulkUpdate for application/json ContentType.
type PluginsCircuitMaintenanceNoteBulkUpdateJSONRequestBody = PluginsCircuitMaintenanceNoteBulkUpdateJSONBody

// PluginsCircuitMaintenanceNotePartialUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceNotePartialUpdate for application/json ContentType.
type PluginsCircuitMaintenanceNotePartialUpdateJSONRequestBody = PatchedNoteRequest

// PluginsCircuitMaintenanceNoteUpdateJSONRequestBody defines body for PluginsCircuitMaintenanceNoteUpdate for application/json ContentType.
type PluginsCircuitMaintenanceNoteUpdateJSONRequestBody = NoteRequest

// PluginsDataValidationEngineRulesMinMaxBulkDestroyJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxBulkDestroy for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxBulkDestroyJSONRequestBody = PluginsDataValidationEngineRulesMinMaxBulkDestroyJSONBody

// PluginsDataValidationEngineRulesMinMaxBulkPartialUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxBulkPartialUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxBulkPartialUpdateJSONRequestBody = PluginsDataValidationEngineRulesMinMaxBulkPartialUpdateJSONBody

// PluginsDataValidationEngineRulesMinMaxCreateJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxCreate for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxCreateJSONRequestBody = MinMaxValidationRuleRequest

// PluginsDataValidationEngineRulesMinMaxBulkUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxBulkUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxBulkUpdateJSONRequestBody = PluginsDataValidationEngineRulesMinMaxBulkUpdateJSONBody

// PluginsDataValidationEngineRulesMinMaxPartialUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxPartialUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxPartialUpdateJSONRequestBody = PatchedMinMaxValidationRuleRequest

// PluginsDataValidationEngineRulesMinMaxUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesMinMaxUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesMinMaxUpdateJSONRequestBody = MinMaxValidationRuleRequest

// PluginsDataValidationEngineRulesRegexBulkDestroyJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexBulkDestroy for application/json ContentType.
type PluginsDataValidationEngineRulesRegexBulkDestroyJSONRequestBody = PluginsDataValidationEngineRulesRegexBulkDestroyJSONBody

// PluginsDataValidationEngineRulesRegexBulkPartialUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexBulkPartialUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesRegexBulkPartialUpdateJSONRequestBody = PluginsDataValidationEngineRulesRegexBulkPartialUpdateJSONBody

// PluginsDataValidationEngineRulesRegexCreateJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexCreate for application/json ContentType.
type PluginsDataValidationEngineRulesRegexCreateJSONRequestBody = RegularExpressionValidationRuleRequest

// PluginsDataValidationEngineRulesRegexBulkUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexBulkUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesRegexBulkUpdateJSONRequestBody = PluginsDataValidationEngineRulesRegexBulkUpdateJSONBody

// PluginsDataValidationEngineRulesRegexPartialUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexPartialUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesRegexPartialUpdateJSONRequestBody = PatchedRegularExpressionValidationRuleRequest

// PluginsDataValidationEngineRulesRegexUpdateJSONRequestBody defines body for PluginsDataValidationEngineRulesRegexUpdate for application/json ContentType.
type PluginsDataValidationEngineRulesRegexUpdateJSONRequestBody = RegularExpressionValidationRuleRequest

// PluginsDeviceOnboardingOnboardingCreateJSONRequestBody defines body for PluginsDeviceOnboardingOnboardingCreate for application/json ContentType.
type PluginsDeviceOnboardingOnboardingCreateJSONRequestBody = OnboardingTaskRequest

// PluginsFirewallAddressObjectGroupBulkDestroyJSONRequestBody defines body for PluginsFirewallAddressObjectGroupBulkDestroy for application/json ContentType.
type PluginsFirewallAddressObjectGroupBulkDestroyJSONRequestBody = PluginsFirewallAddressObjectGroupBulkDestroyJSONBody

// PluginsFirewallAddressObjectGroupBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupBulkPartialUpdate for application/json ContentType.
type PluginsFirewallAddressObjectGroupBulkPartialUpdateJSONRequestBody = PluginsFirewallAddressObjectGroupBulkPartialUpdateJSONBody

// PluginsFirewallAddressObjectGroupCreateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupCreate for application/json ContentType.
type PluginsFirewallAddressObjectGroupCreateJSONRequestBody = WritableAddressObjectGroupRequest

// PluginsFirewallAddressObjectGroupBulkUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupBulkUpdate for application/json ContentType.
type PluginsFirewallAddressObjectGroupBulkUpdateJSONRequestBody = PluginsFirewallAddressObjectGroupBulkUpdateJSONBody

// PluginsFirewallAddressObjectGroupPartialUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupPartialUpdate for application/json ContentType.
type PluginsFirewallAddressObjectGroupPartialUpdateJSONRequestBody = PatchedWritableAddressObjectGroupRequest

// PluginsFirewallAddressObjectGroupUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupUpdate for application/json ContentType.
type PluginsFirewallAddressObjectGroupUpdateJSONRequestBody = WritableAddressObjectGroupRequest

// PluginsFirewallAddressObjectGroupNotesCreateJSONRequestBody defines body for PluginsFirewallAddressObjectGroupNotesCreate for application/json ContentType.
type PluginsFirewallAddressObjectGroupNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallAddressObjectBulkDestroyJSONRequestBody defines body for PluginsFirewallAddressObjectBulkDestroy for application/json ContentType.
type PluginsFirewallAddressObjectBulkDestroyJSONRequestBody = PluginsFirewallAddressObjectBulkDestroyJSONBody

// PluginsFirewallAddressObjectBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectBulkPartialUpdate for application/json ContentType.
type PluginsFirewallAddressObjectBulkPartialUpdateJSONRequestBody = PluginsFirewallAddressObjectBulkPartialUpdateJSONBody

// PluginsFirewallAddressObjectCreateJSONRequestBody defines body for PluginsFirewallAddressObjectCreate for application/json ContentType.
type PluginsFirewallAddressObjectCreateJSONRequestBody = WritableAddressObjectRequest

// PluginsFirewallAddressObjectBulkUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectBulkUpdate for application/json ContentType.
type PluginsFirewallAddressObjectBulkUpdateJSONRequestBody = PluginsFirewallAddressObjectBulkUpdateJSONBody

// PluginsFirewallAddressObjectPartialUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectPartialUpdate for application/json ContentType.
type PluginsFirewallAddressObjectPartialUpdateJSONRequestBody = PatchedWritableAddressObjectRequest

// PluginsFirewallAddressObjectUpdateJSONRequestBody defines body for PluginsFirewallAddressObjectUpdate for application/json ContentType.
type PluginsFirewallAddressObjectUpdateJSONRequestBody = WritableAddressObjectRequest

// PluginsFirewallAddressObjectNotesCreateJSONRequestBody defines body for PluginsFirewallAddressObjectNotesCreate for application/json ContentType.
type PluginsFirewallAddressObjectNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallCapircaPolicyBulkDestroyJSONRequestBody defines body for PluginsFirewallCapircaPolicyBulkDestroy for application/json ContentType.
type PluginsFirewallCapircaPolicyBulkDestroyJSONRequestBody = PluginsFirewallCapircaPolicyBulkDestroyJSONBody

// PluginsFirewallCapircaPolicyBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallCapircaPolicyBulkPartialUpdate for application/json ContentType.
type PluginsFirewallCapircaPolicyBulkPartialUpdateJSONRequestBody = PluginsFirewallCapircaPolicyBulkPartialUpdateJSONBody

// PluginsFirewallCapircaPolicyCreateJSONRequestBody defines body for PluginsFirewallCapircaPolicyCreate for application/json ContentType.
type PluginsFirewallCapircaPolicyCreateJSONRequestBody = CapircaPolicyRequest

// PluginsFirewallCapircaPolicyBulkUpdateJSONRequestBody defines body for PluginsFirewallCapircaPolicyBulkUpdate for application/json ContentType.
type PluginsFirewallCapircaPolicyBulkUpdateJSONRequestBody = PluginsFirewallCapircaPolicyBulkUpdateJSONBody

// PluginsFirewallCapircaPolicyPartialUpdateJSONRequestBody defines body for PluginsFirewallCapircaPolicyPartialUpdate for application/json ContentType.
type PluginsFirewallCapircaPolicyPartialUpdateJSONRequestBody = PatchedCapircaPolicyRequest

// PluginsFirewallCapircaPolicyUpdateJSONRequestBody defines body for PluginsFirewallCapircaPolicyUpdate for application/json ContentType.
type PluginsFirewallCapircaPolicyUpdateJSONRequestBody = CapircaPolicyRequest

// PluginsFirewallFqdnBulkDestroyJSONRequestBody defines body for PluginsFirewallFqdnBulkDestroy for application/json ContentType.
type PluginsFirewallFqdnBulkDestroyJSONRequestBody = PluginsFirewallFqdnBulkDestroyJSONBody

// PluginsFirewallFqdnBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallFqdnBulkPartialUpdate for application/json ContentType.
type PluginsFirewallFqdnBulkPartialUpdateJSONRequestBody = PluginsFirewallFqdnBulkPartialUpdateJSONBody

// PluginsFirewallFqdnCreateJSONRequestBody defines body for PluginsFirewallFqdnCreate for application/json ContentType.
type PluginsFirewallFqdnCreateJSONRequestBody = WritableFQDNRequest

// PluginsFirewallFqdnBulkUpdateJSONRequestBody defines body for PluginsFirewallFqdnBulkUpdate for application/json ContentType.
type PluginsFirewallFqdnBulkUpdateJSONRequestBody = PluginsFirewallFqdnBulkUpdateJSONBody

// PluginsFirewallFqdnPartialUpdateJSONRequestBody defines body for PluginsFirewallFqdnPartialUpdate for application/json ContentType.
type PluginsFirewallFqdnPartialUpdateJSONRequestBody = PatchedWritableFQDNRequest

// PluginsFirewallFqdnUpdateJSONRequestBody defines body for PluginsFirewallFqdnUpdate for application/json ContentType.
type PluginsFirewallFqdnUpdateJSONRequestBody = WritableFQDNRequest

// PluginsFirewallFqdnNotesCreateJSONRequestBody defines body for PluginsFirewallFqdnNotesCreate for application/json ContentType.
type PluginsFirewallFqdnNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallIpRangeBulkDestroyJSONRequestBody defines body for PluginsFirewallIpRangeBulkDestroy for application/json ContentType.
type PluginsFirewallIpRangeBulkDestroyJSONRequestBody = PluginsFirewallIpRangeBulkDestroyJSONBody

// PluginsFirewallIpRangeBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallIpRangeBulkPartialUpdate for application/json ContentType.
type PluginsFirewallIpRangeBulkPartialUpdateJSONRequestBody = PluginsFirewallIpRangeBulkPartialUpdateJSONBody

// PluginsFirewallIpRangeCreateJSONRequestBody defines body for PluginsFirewallIpRangeCreate for application/json ContentType.
type PluginsFirewallIpRangeCreateJSONRequestBody = IPRangeRequest

// PluginsFirewallIpRangeBulkUpdateJSONRequestBody defines body for PluginsFirewallIpRangeBulkUpdate for application/json ContentType.
type PluginsFirewallIpRangeBulkUpdateJSONRequestBody = PluginsFirewallIpRangeBulkUpdateJSONBody

// PluginsFirewallIpRangePartialUpdateJSONRequestBody defines body for PluginsFirewallIpRangePartialUpdate for application/json ContentType.
type PluginsFirewallIpRangePartialUpdateJSONRequestBody = PatchedIPRangeRequest

// PluginsFirewallIpRangeUpdateJSONRequestBody defines body for PluginsFirewallIpRangeUpdate for application/json ContentType.
type PluginsFirewallIpRangeUpdateJSONRequestBody = IPRangeRequest

// PluginsFirewallIpRangeNotesCreateJSONRequestBody defines body for PluginsFirewallIpRangeNotesCreate for application/json ContentType.
type PluginsFirewallIpRangeNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallNatPolicyRuleBulkDestroyJSONRequestBody defines body for PluginsFirewallNatPolicyRuleBulkDestroy for application/json ContentType.
type PluginsFirewallNatPolicyRuleBulkDestroyJSONRequestBody = PluginsFirewallNatPolicyRuleBulkDestroyJSONBody

// PluginsFirewallNatPolicyRuleBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyRuleBulkPartialUpdate for application/json ContentType.
type PluginsFirewallNatPolicyRuleBulkPartialUpdateJSONRequestBody = PluginsFirewallNatPolicyRuleBulkPartialUpdateJSONBody

// PluginsFirewallNatPolicyRuleCreateJSONRequestBody defines body for PluginsFirewallNatPolicyRuleCreate for application/json ContentType.
type PluginsFirewallNatPolicyRuleCreateJSONRequestBody = WritableNATPolicyRuleRequest

// PluginsFirewallNatPolicyRuleBulkUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyRuleBulkUpdate for application/json ContentType.
type PluginsFirewallNatPolicyRuleBulkUpdateJSONRequestBody = PluginsFirewallNatPolicyRuleBulkUpdateJSONBody

// PluginsFirewallNatPolicyRulePartialUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyRulePartialUpdate for application/json ContentType.
type PluginsFirewallNatPolicyRulePartialUpdateJSONRequestBody = PatchedWritableNATPolicyRuleRequest

// PluginsFirewallNatPolicyRuleUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyRuleUpdate for application/json ContentType.
type PluginsFirewallNatPolicyRuleUpdateJSONRequestBody = WritableNATPolicyRuleRequest

// PluginsFirewallNatPolicyRuleNotesCreateJSONRequestBody defines body for PluginsFirewallNatPolicyRuleNotesCreate for application/json ContentType.
type PluginsFirewallNatPolicyRuleNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallNatPolicyBulkDestroyJSONRequestBody defines body for PluginsFirewallNatPolicyBulkDestroy for application/json ContentType.
type PluginsFirewallNatPolicyBulkDestroyJSONRequestBody = PluginsFirewallNatPolicyBulkDestroyJSONBody

// PluginsFirewallNatPolicyBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyBulkPartialUpdate for application/json ContentType.
type PluginsFirewallNatPolicyBulkPartialUpdateJSONRequestBody = PluginsFirewallNatPolicyBulkPartialUpdateJSONBody

// PluginsFirewallNatPolicyCreateJSONRequestBody defines body for PluginsFirewallNatPolicyCreate for application/json ContentType.
type PluginsFirewallNatPolicyCreateJSONRequestBody = NATPolicyRequest

// PluginsFirewallNatPolicyBulkUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyBulkUpdate for application/json ContentType.
type PluginsFirewallNatPolicyBulkUpdateJSONRequestBody = PluginsFirewallNatPolicyBulkUpdateJSONBody

// PluginsFirewallNatPolicyPartialUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyPartialUpdate for application/json ContentType.
type PluginsFirewallNatPolicyPartialUpdateJSONRequestBody = PatchedNATPolicyRequest

// PluginsFirewallNatPolicyUpdateJSONRequestBody defines body for PluginsFirewallNatPolicyUpdate for application/json ContentType.
type PluginsFirewallNatPolicyUpdateJSONRequestBody = NATPolicyRequest

// PluginsFirewallNatPolicyNotesCreateJSONRequestBody defines body for PluginsFirewallNatPolicyNotesCreate for application/json ContentType.
type PluginsFirewallNatPolicyNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallPolicyRuleBulkDestroyJSONRequestBody defines body for PluginsFirewallPolicyRuleBulkDestroy for application/json ContentType.
type PluginsFirewallPolicyRuleBulkDestroyJSONRequestBody = PluginsFirewallPolicyRuleBulkDestroyJSONBody

// PluginsFirewallPolicyRuleBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallPolicyRuleBulkPartialUpdate for application/json ContentType.
type PluginsFirewallPolicyRuleBulkPartialUpdateJSONRequestBody = PluginsFirewallPolicyRuleBulkPartialUpdateJSONBody

// PluginsFirewallPolicyRuleCreateJSONRequestBody defines body for PluginsFirewallPolicyRuleCreate for application/json ContentType.
type PluginsFirewallPolicyRuleCreateJSONRequestBody = WritablePolicyRuleRequest

// PluginsFirewallPolicyRuleBulkUpdateJSONRequestBody defines body for PluginsFirewallPolicyRuleBulkUpdate for application/json ContentType.
type PluginsFirewallPolicyRuleBulkUpdateJSONRequestBody = PluginsFirewallPolicyRuleBulkUpdateJSONBody

// PluginsFirewallPolicyRulePartialUpdateJSONRequestBody defines body for PluginsFirewallPolicyRulePartialUpdate for application/json ContentType.
type PluginsFirewallPolicyRulePartialUpdateJSONRequestBody = PatchedWritablePolicyRuleRequest

// PluginsFirewallPolicyRuleUpdateJSONRequestBody defines body for PluginsFirewallPolicyRuleUpdate for application/json ContentType.
type PluginsFirewallPolicyRuleUpdateJSONRequestBody = WritablePolicyRuleRequest

// PluginsFirewallPolicyRuleNotesCreateJSONRequestBody defines body for PluginsFirewallPolicyRuleNotesCreate for application/json ContentType.
type PluginsFirewallPolicyRuleNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallPolicyBulkDestroyJSONRequestBody defines body for PluginsFirewallPolicyBulkDestroy for application/json ContentType.
type PluginsFirewallPolicyBulkDestroyJSONRequestBody = PluginsFirewallPolicyBulkDestroyJSONBody

// PluginsFirewallPolicyBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallPolicyBulkPartialUpdate for application/json ContentType.
type PluginsFirewallPolicyBulkPartialUpdateJSONRequestBody = PluginsFirewallPolicyBulkPartialUpdateJSONBody

// PluginsFirewallPolicyCreateJSONRequestBody defines body for PluginsFirewallPolicyCreate for application/json ContentType.
type PluginsFirewallPolicyCreateJSONRequestBody = PolicyRequest

// PluginsFirewallPolicyBulkUpdateJSONRequestBody defines body for PluginsFirewallPolicyBulkUpdate for application/json ContentType.
type PluginsFirewallPolicyBulkUpdateJSONRequestBody = PluginsFirewallPolicyBulkUpdateJSONBody

// PluginsFirewallPolicyPartialUpdateJSONRequestBody defines body for PluginsFirewallPolicyPartialUpdate for application/json ContentType.
type PluginsFirewallPolicyPartialUpdateJSONRequestBody = PatchedPolicyRequest

// PluginsFirewallPolicyUpdateJSONRequestBody defines body for PluginsFirewallPolicyUpdate for application/json ContentType.
type PluginsFirewallPolicyUpdateJSONRequestBody = PolicyRequest

// PluginsFirewallPolicyNotesCreateJSONRequestBody defines body for PluginsFirewallPolicyNotesCreate for application/json ContentType.
type PluginsFirewallPolicyNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallServiceObjectGroupBulkDestroyJSONRequestBody defines body for PluginsFirewallServiceObjectGroupBulkDestroy for application/json ContentType.
type PluginsFirewallServiceObjectGroupBulkDestroyJSONRequestBody = PluginsFirewallServiceObjectGroupBulkDestroyJSONBody

// PluginsFirewallServiceObjectGroupBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupBulkPartialUpdate for application/json ContentType.
type PluginsFirewallServiceObjectGroupBulkPartialUpdateJSONRequestBody = PluginsFirewallServiceObjectGroupBulkPartialUpdateJSONBody

// PluginsFirewallServiceObjectGroupCreateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupCreate for application/json ContentType.
type PluginsFirewallServiceObjectGroupCreateJSONRequestBody = WritableServiceObjectGroupRequest

// PluginsFirewallServiceObjectGroupBulkUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupBulkUpdate for application/json ContentType.
type PluginsFirewallServiceObjectGroupBulkUpdateJSONRequestBody = PluginsFirewallServiceObjectGroupBulkUpdateJSONBody

// PluginsFirewallServiceObjectGroupPartialUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupPartialUpdate for application/json ContentType.
type PluginsFirewallServiceObjectGroupPartialUpdateJSONRequestBody = PatchedWritableServiceObjectGroupRequest

// PluginsFirewallServiceObjectGroupUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupUpdate for application/json ContentType.
type PluginsFirewallServiceObjectGroupUpdateJSONRequestBody = WritableServiceObjectGroupRequest

// PluginsFirewallServiceObjectGroupNotesCreateJSONRequestBody defines body for PluginsFirewallServiceObjectGroupNotesCreate for application/json ContentType.
type PluginsFirewallServiceObjectGroupNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallServiceObjectBulkDestroyJSONRequestBody defines body for PluginsFirewallServiceObjectBulkDestroy for application/json ContentType.
type PluginsFirewallServiceObjectBulkDestroyJSONRequestBody = PluginsFirewallServiceObjectBulkDestroyJSONBody

// PluginsFirewallServiceObjectBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectBulkPartialUpdate for application/json ContentType.
type PluginsFirewallServiceObjectBulkPartialUpdateJSONRequestBody = PluginsFirewallServiceObjectBulkPartialUpdateJSONBody

// PluginsFirewallServiceObjectCreateJSONRequestBody defines body for PluginsFirewallServiceObjectCreate for application/json ContentType.
type PluginsFirewallServiceObjectCreateJSONRequestBody = ServiceObjectRequest

// PluginsFirewallServiceObjectBulkUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectBulkUpdate for application/json ContentType.
type PluginsFirewallServiceObjectBulkUpdateJSONRequestBody = PluginsFirewallServiceObjectBulkUpdateJSONBody

// PluginsFirewallServiceObjectPartialUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectPartialUpdate for application/json ContentType.
type PluginsFirewallServiceObjectPartialUpdateJSONRequestBody = PatchedServiceObjectRequest

// PluginsFirewallServiceObjectUpdateJSONRequestBody defines body for PluginsFirewallServiceObjectUpdate for application/json ContentType.
type PluginsFirewallServiceObjectUpdateJSONRequestBody = ServiceObjectRequest

// PluginsFirewallServiceObjectNotesCreateJSONRequestBody defines body for PluginsFirewallServiceObjectNotesCreate for application/json ContentType.
type PluginsFirewallServiceObjectNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallUserObjectGroupBulkDestroyJSONRequestBody defines body for PluginsFirewallUserObjectGroupBulkDestroy for application/json ContentType.
type PluginsFirewallUserObjectGroupBulkDestroyJSONRequestBody = PluginsFirewallUserObjectGroupBulkDestroyJSONBody

// PluginsFirewallUserObjectGroupBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallUserObjectGroupBulkPartialUpdate for application/json ContentType.
type PluginsFirewallUserObjectGroupBulkPartialUpdateJSONRequestBody = PluginsFirewallUserObjectGroupBulkPartialUpdateJSONBody

// PluginsFirewallUserObjectGroupCreateJSONRequestBody defines body for PluginsFirewallUserObjectGroupCreate for application/json ContentType.
type PluginsFirewallUserObjectGroupCreateJSONRequestBody = WritableUserObjectGroupRequest

// PluginsFirewallUserObjectGroupBulkUpdateJSONRequestBody defines body for PluginsFirewallUserObjectGroupBulkUpdate for application/json ContentType.
type PluginsFirewallUserObjectGroupBulkUpdateJSONRequestBody = PluginsFirewallUserObjectGroupBulkUpdateJSONBody

// PluginsFirewallUserObjectGroupPartialUpdateJSONRequestBody defines body for PluginsFirewallUserObjectGroupPartialUpdate for application/json ContentType.
type PluginsFirewallUserObjectGroupPartialUpdateJSONRequestBody = PatchedWritableUserObjectGroupRequest

// PluginsFirewallUserObjectGroupUpdateJSONRequestBody defines body for PluginsFirewallUserObjectGroupUpdate for application/json ContentType.
type PluginsFirewallUserObjectGroupUpdateJSONRequestBody = WritableUserObjectGroupRequest

// PluginsFirewallUserObjectGroupNotesCreateJSONRequestBody defines body for PluginsFirewallUserObjectGroupNotesCreate for application/json ContentType.
type PluginsFirewallUserObjectGroupNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallUserObjectBulkDestroyJSONRequestBody defines body for PluginsFirewallUserObjectBulkDestroy for application/json ContentType.
type PluginsFirewallUserObjectBulkDestroyJSONRequestBody = PluginsFirewallUserObjectBulkDestroyJSONBody

// PluginsFirewallUserObjectBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallUserObjectBulkPartialUpdate for application/json ContentType.
type PluginsFirewallUserObjectBulkPartialUpdateJSONRequestBody = PluginsFirewallUserObjectBulkPartialUpdateJSONBody

// PluginsFirewallUserObjectCreateJSONRequestBody defines body for PluginsFirewallUserObjectCreate for application/json ContentType.
type PluginsFirewallUserObjectCreateJSONRequestBody = UserObjectRequest

// PluginsFirewallUserObjectBulkUpdateJSONRequestBody defines body for PluginsFirewallUserObjectBulkUpdate for application/json ContentType.
type PluginsFirewallUserObjectBulkUpdateJSONRequestBody = PluginsFirewallUserObjectBulkUpdateJSONBody

// PluginsFirewallUserObjectPartialUpdateJSONRequestBody defines body for PluginsFirewallUserObjectPartialUpdate for application/json ContentType.
type PluginsFirewallUserObjectPartialUpdateJSONRequestBody = PatchedUserObjectRequest

// PluginsFirewallUserObjectUpdateJSONRequestBody defines body for PluginsFirewallUserObjectUpdate for application/json ContentType.
type PluginsFirewallUserObjectUpdateJSONRequestBody = UserObjectRequest

// PluginsFirewallUserObjectNotesCreateJSONRequestBody defines body for PluginsFirewallUserObjectNotesCreate for application/json ContentType.
type PluginsFirewallUserObjectNotesCreateJSONRequestBody = NoteInputRequest

// PluginsFirewallZoneBulkDestroyJSONRequestBody defines body for PluginsFirewallZoneBulkDestroy for application/json ContentType.
type PluginsFirewallZoneBulkDestroyJSONRequestBody = PluginsFirewallZoneBulkDestroyJSONBody

// PluginsFirewallZoneBulkPartialUpdateJSONRequestBody defines body for PluginsFirewallZoneBulkPartialUpdate for application/json ContentType.
type PluginsFirewallZoneBulkPartialUpdateJSONRequestBody = PluginsFirewallZoneBulkPartialUpdateJSONBody

// PluginsFirewallZoneCreateJSONRequestBody defines body for PluginsFirewallZoneCreate for application/json ContentType.
type PluginsFirewallZoneCreateJSONRequestBody = ZoneRequest

// PluginsFirewallZoneBulkUpdateJSONRequestBody defines body for PluginsFirewallZoneBulkUpdate for application/json ContentType.
type PluginsFirewallZoneBulkUpdateJSONRequestBody = PluginsFirewallZoneBulkUpdateJSONBody

// PluginsFirewallZonePartialUpdateJSONRequestBody defines body for PluginsFirewallZonePartialUpdate for application/json ContentType.
type PluginsFirewallZonePartialUpdateJSONRequestBody = PatchedZoneRequest

// PluginsFirewallZoneUpdateJSONRequestBody defines body for PluginsFirewallZoneUpdate for application/json ContentType.
type PluginsFirewallZoneUpdateJSONRequestBody = ZoneRequest

// PluginsFirewallZoneNotesCreateJSONRequestBody defines body for PluginsFirewallZoneNotesCreate for application/json ContentType.
type PluginsFirewallZoneNotesCreateJSONRequestBody = NoteInputRequest

// PluginsGoldenConfigComplianceFeatureBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigComplianceFeatureBulkDestroy for application/json ContentType.
type PluginsGoldenConfigComplianceFeatureBulkDestroyJSONRequestBody = PluginsGoldenConfigComplianceFeatureBulkDestroyJSONBody

// PluginsGoldenConfigComplianceFeatureBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceFeatureBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceFeatureBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigComplianceFeatureBulkPartialUpdateJSONBody

// PluginsGoldenConfigComplianceFeatureCreateJSONRequestBody defines body for PluginsGoldenConfigComplianceFeatureCreate for application/json ContentType.
type PluginsGoldenConfigComplianceFeatureCreateJSONRequestBody = ComplianceFeatureRequest

// PluginsGoldenConfigComplianceFeatureBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceFeatureBulkUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceFeatureBulkUpdateJSONRequestBody = PluginsGoldenConfigComplianceFeatureBulkUpdateJSONBody

// PluginsGoldenConfigComplianceFeaturePartialUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceFeaturePartialUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceFeaturePartialUpdateJSONRequestBody = PatchedComplianceFeatureRequest

// PluginsGoldenConfigComplianceFeatureUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceFeatureUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceFeatureUpdateJSONRequestBody = ComplianceFeatureRequest

// PluginsGoldenConfigComplianceRuleBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigComplianceRuleBulkDestroy for application/json ContentType.
type PluginsGoldenConfigComplianceRuleBulkDestroyJSONRequestBody = PluginsGoldenConfigComplianceRuleBulkDestroyJSONBody

// PluginsGoldenConfigComplianceRuleBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceRuleBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceRuleBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigComplianceRuleBulkPartialUpdateJSONBody

// PluginsGoldenConfigComplianceRuleCreateJSONRequestBody defines body for PluginsGoldenConfigComplianceRuleCreate for application/json ContentType.
type PluginsGoldenConfigComplianceRuleCreateJSONRequestBody = ComplianceRuleRequest

// PluginsGoldenConfigComplianceRuleBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceRuleBulkUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceRuleBulkUpdateJSONRequestBody = PluginsGoldenConfigComplianceRuleBulkUpdateJSONBody

// PluginsGoldenConfigComplianceRulePartialUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceRulePartialUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceRulePartialUpdateJSONRequestBody = PatchedComplianceRuleRequest

// PluginsGoldenConfigComplianceRuleUpdateJSONRequestBody defines body for PluginsGoldenConfigComplianceRuleUpdate for application/json ContentType.
type PluginsGoldenConfigComplianceRuleUpdateJSONRequestBody = ComplianceRuleRequest

// PluginsGoldenConfigConfigComplianceBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigConfigComplianceBulkDestroy for application/json ContentType.
type PluginsGoldenConfigConfigComplianceBulkDestroyJSONRequestBody = PluginsGoldenConfigConfigComplianceBulkDestroyJSONBody

// PluginsGoldenConfigConfigComplianceBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigComplianceBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigComplianceBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigConfigComplianceBulkPartialUpdateJSONBody

// PluginsGoldenConfigConfigComplianceCreateJSONRequestBody defines body for PluginsGoldenConfigConfigComplianceCreate for application/json ContentType.
type PluginsGoldenConfigConfigComplianceCreateJSONRequestBody = ConfigComplianceRequest

// PluginsGoldenConfigConfigComplianceBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigComplianceBulkUpdate for application/json ContentType.
type PluginsGoldenConfigConfigComplianceBulkUpdateJSONRequestBody = PluginsGoldenConfigConfigComplianceBulkUpdateJSONBody

// PluginsGoldenConfigConfigCompliancePartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigCompliancePartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigCompliancePartialUpdateJSONRequestBody = PatchedConfigComplianceRequest

// PluginsGoldenConfigConfigComplianceUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigComplianceUpdate for application/json ContentType.
type PluginsGoldenConfigConfigComplianceUpdateJSONRequestBody = ConfigComplianceRequest

// PluginsGoldenConfigConfigRemoveBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigConfigRemoveBulkDestroy for application/json ContentType.
type PluginsGoldenConfigConfigRemoveBulkDestroyJSONRequestBody = PluginsGoldenConfigConfigRemoveBulkDestroyJSONBody

// PluginsGoldenConfigConfigRemoveBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigRemoveBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigRemoveBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigConfigRemoveBulkPartialUpdateJSONBody

// PluginsGoldenConfigConfigRemoveCreateJSONRequestBody defines body for PluginsGoldenConfigConfigRemoveCreate for application/json ContentType.
type PluginsGoldenConfigConfigRemoveCreateJSONRequestBody = ConfigRemoveRequest

// PluginsGoldenConfigConfigRemoveBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigRemoveBulkUpdate for application/json ContentType.
type PluginsGoldenConfigConfigRemoveBulkUpdateJSONRequestBody = PluginsGoldenConfigConfigRemoveBulkUpdateJSONBody

// PluginsGoldenConfigConfigRemovePartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigRemovePartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigRemovePartialUpdateJSONRequestBody = PatchedConfigRemoveRequest

// PluginsGoldenConfigConfigRemoveUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigRemoveUpdate for application/json ContentType.
type PluginsGoldenConfigConfigRemoveUpdateJSONRequestBody = ConfigRemoveRequest

// PluginsGoldenConfigConfigReplaceBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigConfigReplaceBulkDestroy for application/json ContentType.
type PluginsGoldenConfigConfigReplaceBulkDestroyJSONRequestBody = PluginsGoldenConfigConfigReplaceBulkDestroyJSONBody

// PluginsGoldenConfigConfigReplaceBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigReplaceBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigReplaceBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigConfigReplaceBulkPartialUpdateJSONBody

// PluginsGoldenConfigConfigReplaceCreateJSONRequestBody defines body for PluginsGoldenConfigConfigReplaceCreate for application/json ContentType.
type PluginsGoldenConfigConfigReplaceCreateJSONRequestBody = ConfigReplaceRequest

// PluginsGoldenConfigConfigReplaceBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigReplaceBulkUpdate for application/json ContentType.
type PluginsGoldenConfigConfigReplaceBulkUpdateJSONRequestBody = PluginsGoldenConfigConfigReplaceBulkUpdateJSONBody

// PluginsGoldenConfigConfigReplacePartialUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigReplacePartialUpdate for application/json ContentType.
type PluginsGoldenConfigConfigReplacePartialUpdateJSONRequestBody = PatchedConfigReplaceRequest

// PluginsGoldenConfigConfigReplaceUpdateJSONRequestBody defines body for PluginsGoldenConfigConfigReplaceUpdate for application/json ContentType.
type PluginsGoldenConfigConfigReplaceUpdateJSONRequestBody = ConfigReplaceRequest

// PluginsGoldenConfigGoldenConfigSettingsBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsBulkDestroy for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsBulkDestroyJSONRequestBody = PluginsGoldenConfigGoldenConfigSettingsBulkDestroyJSONBody

// PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigGoldenConfigSettingsBulkPartialUpdateJSONBody

// PluginsGoldenConfigGoldenConfigSettingsCreateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsCreate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsCreateJSONRequestBody = WritableGoldenConfigSettingRequest

// PluginsGoldenConfigGoldenConfigSettingsBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsBulkUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsBulkUpdateJSONRequestBody = PluginsGoldenConfigGoldenConfigSettingsBulkUpdateJSONBody

// PluginsGoldenConfigGoldenConfigSettingsPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsPartialUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsPartialUpdateJSONRequestBody = PatchedWritableGoldenConfigSettingRequest

// PluginsGoldenConfigGoldenConfigSettingsUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigSettingsUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigSettingsUpdateJSONRequestBody = WritableGoldenConfigSettingRequest

// PluginsGoldenConfigGoldenConfigBulkDestroyJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigBulkDestroy for application/json ContentType.
type PluginsGoldenConfigGoldenConfigBulkDestroyJSONRequestBody = PluginsGoldenConfigGoldenConfigBulkDestroyJSONBody

// PluginsGoldenConfigGoldenConfigBulkPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigBulkPartialUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigBulkPartialUpdateJSONRequestBody = PluginsGoldenConfigGoldenConfigBulkPartialUpdateJSONBody

// PluginsGoldenConfigGoldenConfigCreateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigCreate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigCreateJSONRequestBody = GoldenConfigRequest

// PluginsGoldenConfigGoldenConfigBulkUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigBulkUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigBulkUpdateJSONRequestBody = PluginsGoldenConfigGoldenConfigBulkUpdateJSONBody

// PluginsGoldenConfigGoldenConfigPartialUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigPartialUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigPartialUpdateJSONRequestBody = PatchedGoldenConfigRequest

// PluginsGoldenConfigGoldenConfigUpdateJSONRequestBody defines body for PluginsGoldenConfigGoldenConfigUpdate for application/json ContentType.
type PluginsGoldenConfigGoldenConfigUpdateJSONRequestBody = GoldenConfigRequest

// PluginsNautobotDeviceLifecycleMgmtContactBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContactBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContactBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtContactCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactCreateJSONRequestBody = WritableContactLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContactBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContactBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtContactPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactPartialUpdateJSONRequestBody = PatchedWritableContactLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContactUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContactUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContactUpdateJSONRequestBody = WritableContactLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContractBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContractBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContractBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtContractCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractCreateJSONRequestBody = WritableContractLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContractBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtContractBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtContractPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractPartialUpdateJSONRequestBody = PatchedWritableContractLCMRequest

// PluginsNautobotDeviceLifecycleMgmtContractUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtContractUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtContractUpdateJSONRequestBody = WritableContractLCMRequest

// PluginsNautobotDeviceLifecycleMgmtCveBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCveBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCveBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtCveBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtCveBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtCveCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCveCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCveCreateJSONRequestBody = WritableCVELCMRequest

// PluginsNautobotDeviceLifecycleMgmtCveBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCveBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCveBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtCveBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtCvePartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCvePartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCvePartialUpdateJSONRequestBody = PatchedWritableCVELCMRequest

// PluginsNautobotDeviceLifecycleMgmtCveUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtCveUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtCveUpdateJSONRequestBody = WritableCVELCMRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtHardwareBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtHardwareBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtHardwareCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwareCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwareCreateJSONRequestBody = WritableHardwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtHardwareBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtHardwarePartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwarePartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwarePartialUpdateJSONRequestBody = PatchedWritableHardwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtHardwareUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtHardwareUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtHardwareUpdateJSONRequestBody = WritableHardwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtProviderBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtProviderBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtProviderCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderCreateJSONRequestBody = ProviderLCMRequest

// PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtProviderBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtProviderPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderPartialUpdateJSONRequestBody = PatchedProviderLCMRequest

// PluginsNautobotDeviceLifecycleMgmtProviderUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtProviderUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtProviderUpdateJSONRequestBody = ProviderLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImageCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageCreateJSONRequestBody = WritableSoftwareImageLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareImageBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwareImagePartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImagePartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImagePartialUpdateJSONRequestBody = PatchedWritableSoftwareImageLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareImageUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareImageUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareImageUpdateJSONRequestBody = WritableSoftwareImageLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwareCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareCreateJSONRequestBody = WritableSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtSoftwareBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtSoftwarePartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwarePartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwarePartialUpdateJSONRequestBody = PatchedWritableSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtSoftwareUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtSoftwareUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtSoftwareUpdateJSONRequestBody = WritableSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareCreateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareCreate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareCreateJSONRequestBody = WritableValidatedSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwarePartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwarePartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwarePartialUpdateJSONRequestBody = PatchedWritableValidatedSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtValidatedSoftwareUpdateJSONRequestBody = WritableValidatedSoftwareLCMRequest

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroyJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroy for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroyJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkDestroyJSONBody

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkPartialUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdateJSONRequestBody = PluginsNautobotDeviceLifecycleMgmtVulnerabilityBulkUpdateJSONBody

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityPartialUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtVulnerabilityPartialUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityPartialUpdateJSONRequestBody = PatchedVulnerabilityLCMRequest

// PluginsNautobotDeviceLifecycleMgmtVulnerabilityUpdateJSONRequestBody defines body for PluginsNautobotDeviceLifecycleMgmtVulnerabilityUpdate for application/json ContentType.
type PluginsNautobotDeviceLifecycleMgmtVulnerabilityUpdateJSONRequestBody = VulnerabilityLCMRequest

// TenancyTenantGroupsBulkDestroyJSONRequestBody defines body for TenancyTenantGroupsBulkDestroy for application/json ContentType.
type TenancyTenantGroupsBulkDestroyJSONRequestBody = TenancyTenantGroupsBulkDestroyJSONBody

// TenancyTenantGroupsBulkPartialUpdateJSONRequestBody defines body for TenancyTenantGroupsBulkPartialUpdate for application/json ContentType.
type TenancyTenantGroupsBulkPartialUpdateJSONRequestBody = TenancyTenantGroupsBulkPartialUpdateJSONBody

// TenancyTenantGroupsCreateJSONRequestBody defines body for TenancyTenantGroupsCreate for application/json ContentType.
type TenancyTenantGroupsCreateJSONRequestBody = WritableTenantGroupRequest

// TenancyTenantGroupsBulkUpdateJSONRequestBody defines body for TenancyTenantGroupsBulkUpdate for application/json ContentType.
type TenancyTenantGroupsBulkUpdateJSONRequestBody = TenancyTenantGroupsBulkUpdateJSONBody

// TenancyTenantGroupsPartialUpdateJSONRequestBody defines body for TenancyTenantGroupsPartialUpdate for application/json ContentType.
type TenancyTenantGroupsPartialUpdateJSONRequestBody = PatchedWritableTenantGroupRequest

// TenancyTenantGroupsUpdateJSONRequestBody defines body for TenancyTenantGroupsUpdate for application/json ContentType.
type TenancyTenantGroupsUpdateJSONRequestBody = WritableTenantGroupRequest

// TenancyTenantGroupsNotesCreateJSONRequestBody defines body for TenancyTenantGroupsNotesCreate for application/json ContentType.
type TenancyTenantGroupsNotesCreateJSONRequestBody = NoteInputRequest

// TenancyTenantsBulkDestroyJSONRequestBody defines body for TenancyTenantsBulkDestroy for application/json ContentType.
type TenancyTenantsBulkDestroyJSONRequestBody = TenancyTenantsBulkDestroyJSONBody

// TenancyTenantsBulkPartialUpdateJSONRequestBody defines body for TenancyTenantsBulkPartialUpdate for application/json ContentType.
type TenancyTenantsBulkPartialUpdateJSONRequestBody = TenancyTenantsBulkPartialUpdateJSONBody

// TenancyTenantsCreateJSONRequestBody defines body for TenancyTenantsCreate for application/json ContentType.
type TenancyTenantsCreateJSONRequestBody = WritableTenantRequest

// TenancyTenantsBulkUpdateJSONRequestBody defines body for TenancyTenantsBulkUpdate for application/json ContentType.
type TenancyTenantsBulkUpdateJSONRequestBody = TenancyTenantsBulkUpdateJSONBody

// TenancyTenantsPartialUpdateJSONRequestBody defines body for TenancyTenantsPartialUpdate for application/json ContentType.
type TenancyTenantsPartialUpdateJSONRequestBody = PatchedWritableTenantRequest

// TenancyTenantsUpdateJSONRequestBody defines body for TenancyTenantsUpdate for application/json ContentType.
type TenancyTenantsUpdateJSONRequestBody = WritableTenantRequest

// TenancyTenantsNotesCreateJSONRequestBody defines body for TenancyTenantsNotesCreate for application/json ContentType.
type TenancyTenantsNotesCreateJSONRequestBody = NoteInputRequest

// UsersGroupsBulkDestroyJSONRequestBody defines body for UsersGroupsBulkDestroy for application/json ContentType.
type UsersGroupsBulkDestroyJSONRequestBody = UsersGroupsBulkDestroyJSONBody

// UsersGroupsBulkPartialUpdateJSONRequestBody defines body for UsersGroupsBulkPartialUpdate for application/json ContentType.
type UsersGroupsBulkPartialUpdateJSONRequestBody = UsersGroupsBulkPartialUpdateJSONBody

// UsersGroupsCreateJSONRequestBody defines body for UsersGroupsCreate for application/json ContentType.
type UsersGroupsCreateJSONRequestBody = GroupRequest

// UsersGroupsBulkUpdateJSONRequestBody defines body for UsersGroupsBulkUpdate for application/json ContentType.
type UsersGroupsBulkUpdateJSONRequestBody = UsersGroupsBulkUpdateJSONBody

// UsersGroupsPartialUpdateJSONRequestBody defines body for UsersGroupsPartialUpdate for application/json ContentType.
type UsersGroupsPartialUpdateJSONRequestBody = PatchedGroupRequest

// UsersGroupsUpdateJSONRequestBody defines body for UsersGroupsUpdate for application/json ContentType.
type UsersGroupsUpdateJSONRequestBody = GroupRequest

// UsersPermissionsBulkDestroyJSONRequestBody defines body for UsersPermissionsBulkDestroy for application/json ContentType.
type UsersPermissionsBulkDestroyJSONRequestBody = UsersPermissionsBulkDestroyJSONBody

// UsersPermissionsBulkPartialUpdateJSONRequestBody defines body for UsersPermissionsBulkPartialUpdate for application/json ContentType.
type UsersPermissionsBulkPartialUpdateJSONRequestBody = UsersPermissionsBulkPartialUpdateJSONBody

// UsersPermissionsCreateJSONRequestBody defines body for UsersPermissionsCreate for application/json ContentType.
type UsersPermissionsCreateJSONRequestBody = WritableObjectPermissionRequest

// UsersPermissionsBulkUpdateJSONRequestBody defines body for UsersPermissionsBulkUpdate for application/json ContentType.
type UsersPermissionsBulkUpdateJSONRequestBody = UsersPermissionsBulkUpdateJSONBody

// UsersPermissionsPartialUpdateJSONRequestBody defines body for UsersPermissionsPartialUpdate for application/json ContentType.
type UsersPermissionsPartialUpdateJSONRequestBody = PatchedWritableObjectPermissionRequest

// UsersPermissionsUpdateJSONRequestBody defines body for UsersPermissionsUpdate for application/json ContentType.
type UsersPermissionsUpdateJSONRequestBody = WritableObjectPermissionRequest

// UsersTokensBulkDestroyJSONRequestBody defines body for UsersTokensBulkDestroy for application/json ContentType.
type UsersTokensBulkDestroyJSONRequestBody = UsersTokensBulkDestroyJSONBody

// UsersTokensBulkPartialUpdateJSONRequestBody defines body for UsersTokensBulkPartialUpdate for application/json ContentType.
type UsersTokensBulkPartialUpdateJSONRequestBody = UsersTokensBulkPartialUpdateJSONBody

// UsersTokensCreateJSONRequestBody defines body for UsersTokensCreate for application/json ContentType.
type UsersTokensCreateJSONRequestBody = TokenRequest

// UsersTokensBulkUpdateJSONRequestBody defines body for UsersTokensBulkUpdate for application/json ContentType.
type UsersTokensBulkUpdateJSONRequestBody = UsersTokensBulkUpdateJSONBody

// UsersTokensPartialUpdateJSONRequestBody defines body for UsersTokensPartialUpdate for application/json ContentType.
type UsersTokensPartialUpdateJSONRequestBody = PatchedTokenRequest

// UsersTokensUpdateJSONRequestBody defines body for UsersTokensUpdate for application/json ContentType.
type UsersTokensUpdateJSONRequestBody = TokenRequest

// UsersUsersBulkDestroyJSONRequestBody defines body for UsersUsersBulkDestroy for application/json ContentType.
type UsersUsersBulkDestroyJSONRequestBody = UsersUsersBulkDestroyJSONBody

// UsersUsersBulkPartialUpdateJSONRequestBody defines body for UsersUsersBulkPartialUpdate for application/json ContentType.
type UsersUsersBulkPartialUpdateJSONRequestBody = UsersUsersBulkPartialUpdateJSONBody

// UsersUsersCreateJSONRequestBody defines body for UsersUsersCreate for application/json ContentType.
type UsersUsersCreateJSONRequestBody = WritableUserRequest

// UsersUsersBulkUpdateJSONRequestBody defines body for UsersUsersBulkUpdate for application/json ContentType.
type UsersUsersBulkUpdateJSONRequestBody = UsersUsersBulkUpdateJSONBody

// UsersUsersPartialUpdateJSONRequestBody defines body for UsersUsersPartialUpdate for application/json ContentType.
type UsersUsersPartialUpdateJSONRequestBody = PatchedWritableUserRequest

// UsersUsersUpdateJSONRequestBody defines body for UsersUsersUpdate for application/json ContentType.
type UsersUsersUpdateJSONRequestBody = WritableUserRequest

// VirtualizationClusterGroupsBulkDestroyJSONRequestBody defines body for VirtualizationClusterGroupsBulkDestroy for application/json ContentType.
type VirtualizationClusterGroupsBulkDestroyJSONRequestBody = VirtualizationClusterGroupsBulkDestroyJSONBody

// VirtualizationClusterGroupsBulkPartialUpdateJSONRequestBody defines body for VirtualizationClusterGroupsBulkPartialUpdate for application/json ContentType.
type VirtualizationClusterGroupsBulkPartialUpdateJSONRequestBody = VirtualizationClusterGroupsBulkPartialUpdateJSONBody

// VirtualizationClusterGroupsCreateJSONRequestBody defines body for VirtualizationClusterGroupsCreate for application/json ContentType.
type VirtualizationClusterGroupsCreateJSONRequestBody = ClusterGroupRequest

// VirtualizationClusterGroupsBulkUpdateJSONRequestBody defines body for VirtualizationClusterGroupsBulkUpdate for application/json ContentType.
type VirtualizationClusterGroupsBulkUpdateJSONRequestBody = VirtualizationClusterGroupsBulkUpdateJSONBody

// VirtualizationClusterGroupsPartialUpdateJSONRequestBody defines body for VirtualizationClusterGroupsPartialUpdate for application/json ContentType.
type VirtualizationClusterGroupsPartialUpdateJSONRequestBody = PatchedClusterGroupRequest

// VirtualizationClusterGroupsUpdateJSONRequestBody defines body for VirtualizationClusterGroupsUpdate for application/json ContentType.
type VirtualizationClusterGroupsUpdateJSONRequestBody = ClusterGroupRequest

// VirtualizationClusterGroupsNotesCreateJSONRequestBody defines body for VirtualizationClusterGroupsNotesCreate for application/json ContentType.
type VirtualizationClusterGroupsNotesCreateJSONRequestBody = NoteInputRequest

// VirtualizationClusterTypesBulkDestroyJSONRequestBody defines body for VirtualizationClusterTypesBulkDestroy for application/json ContentType.
type VirtualizationClusterTypesBulkDestroyJSONRequestBody = VirtualizationClusterTypesBulkDestroyJSONBody

// VirtualizationClusterTypesBulkPartialUpdateJSONRequestBody defines body for VirtualizationClusterTypesBulkPartialUpdate for application/json ContentType.
type VirtualizationClusterTypesBulkPartialUpdateJSONRequestBody = VirtualizationClusterTypesBulkPartialUpdateJSONBody

// VirtualizationClusterTypesCreateJSONRequestBody defines body for VirtualizationClusterTypesCreate for application/json ContentType.
type VirtualizationClusterTypesCreateJSONRequestBody = ClusterTypeRequest

// VirtualizationClusterTypesBulkUpdateJSONRequestBody defines body for VirtualizationClusterTypesBulkUpdate for application/json ContentType.
type VirtualizationClusterTypesBulkUpdateJSONRequestBody = VirtualizationClusterTypesBulkUpdateJSONBody

// VirtualizationClusterTypesPartialUpdateJSONRequestBody defines body for VirtualizationClusterTypesPartialUpdate for application/json ContentType.
type VirtualizationClusterTypesPartialUpdateJSONRequestBody = PatchedClusterTypeRequest

// VirtualizationClusterTypesUpdateJSONRequestBody defines body for VirtualizationClusterTypesUpdate for application/json ContentType.
type VirtualizationClusterTypesUpdateJSONRequestBody = ClusterTypeRequest

// VirtualizationClusterTypesNotesCreateJSONRequestBody defines body for VirtualizationClusterTypesNotesCreate for application/json ContentType.
type VirtualizationClusterTypesNotesCreateJSONRequestBody = NoteInputRequest

// VirtualizationClustersBulkDestroyJSONRequestBody defines body for VirtualizationClustersBulkDestroy for application/json ContentType.
type VirtualizationClustersBulkDestroyJSONRequestBody = VirtualizationClustersBulkDestroyJSONBody

// VirtualizationClustersBulkPartialUpdateJSONRequestBody defines body for VirtualizationClustersBulkPartialUpdate for application/json ContentType.
type VirtualizationClustersBulkPartialUpdateJSONRequestBody = VirtualizationClustersBulkPartialUpdateJSONBody

// VirtualizationClustersCreateJSONRequestBody defines body for VirtualizationClustersCreate for application/json ContentType.
type VirtualizationClustersCreateJSONRequestBody = WritableClusterRequest

// VirtualizationClustersBulkUpdateJSONRequestBody defines body for VirtualizationClustersBulkUpdate for application/json ContentType.
type VirtualizationClustersBulkUpdateJSONRequestBody = VirtualizationClustersBulkUpdateJSONBody

// VirtualizationClustersPartialUpdateJSONRequestBody defines body for VirtualizationClustersPartialUpdate for application/json ContentType.
type VirtualizationClustersPartialUpdateJSONRequestBody = PatchedWritableClusterRequest

// VirtualizationClustersUpdateJSONRequestBody defines body for VirtualizationClustersUpdate for application/json ContentType.
type VirtualizationClustersUpdateJSONRequestBody = WritableClusterRequest

// VirtualizationClustersNotesCreateJSONRequestBody defines body for VirtualizationClustersNotesCreate for application/json ContentType.
type VirtualizationClustersNotesCreateJSONRequestBody = NoteInputRequest

// VirtualizationInterfacesBulkDestroyJSONRequestBody defines body for VirtualizationInterfacesBulkDestroy for application/json ContentType.
type VirtualizationInterfacesBulkDestroyJSONRequestBody = VirtualizationInterfacesBulkDestroyJSONBody

// VirtualizationInterfacesBulkPartialUpdateJSONRequestBody defines body for VirtualizationInterfacesBulkPartialUpdate for application/json ContentType.
type VirtualizationInterfacesBulkPartialUpdateJSONRequestBody = VirtualizationInterfacesBulkPartialUpdateJSONBody

// VirtualizationInterfacesCreateJSONRequestBody defines body for VirtualizationInterfacesCreate for application/json ContentType.
type VirtualizationInterfacesCreateJSONRequestBody = WritableVMInterfaceRequest

// VirtualizationInterfacesBulkUpdateJSONRequestBody defines body for VirtualizationInterfacesBulkUpdate for application/json ContentType.
type VirtualizationInterfacesBulkUpdateJSONRequestBody = VirtualizationInterfacesBulkUpdateJSONBody

// VirtualizationInterfacesPartialUpdateJSONRequestBody defines body for VirtualizationInterfacesPartialUpdate for application/json ContentType.
type VirtualizationInterfacesPartialUpdateJSONRequestBody = PatchedWritableVMInterfaceRequest

// VirtualizationInterfacesUpdateJSONRequestBody defines body for VirtualizationInterfacesUpdate for application/json ContentType.
type VirtualizationInterfacesUpdateJSONRequestBody = WritableVMInterfaceRequest

// VirtualizationInterfacesNotesCreateJSONRequestBody defines body for VirtualizationInterfacesNotesCreate for application/json ContentType.
type VirtualizationInterfacesNotesCreateJSONRequestBody = NoteInputRequest

// VirtualizationVirtualMachinesBulkDestroyJSONRequestBody defines body for VirtualizationVirtualMachinesBulkDestroy for application/json ContentType.
type VirtualizationVirtualMachinesBulkDestroyJSONRequestBody = VirtualizationVirtualMachinesBulkDestroyJSONBody

// VirtualizationVirtualMachinesBulkPartialUpdateJSONRequestBody defines body for VirtualizationVirtualMachinesBulkPartialUpdate for application/json ContentType.
type VirtualizationVirtualMachinesBulkPartialUpdateJSONRequestBody = VirtualizationVirtualMachinesBulkPartialUpdateJSONBody

// VirtualizationVirtualMachinesCreateJSONRequestBody defines body for VirtualizationVirtualMachinesCreate for application/json ContentType.
type VirtualizationVirtualMachinesCreateJSONRequestBody = WritableVirtualMachineWithConfigContextRequest

// VirtualizationVirtualMachinesBulkUpdateJSONRequestBody defines body for VirtualizationVirtualMachinesBulkUpdate for application/json ContentType.
type VirtualizationVirtualMachinesBulkUpdateJSONRequestBody = VirtualizationVirtualMachinesBulkUpdateJSONBody

// VirtualizationVirtualMachinesPartialUpdateJSONRequestBody defines body for VirtualizationVirtualMachinesPartialUpdate for application/json ContentType.
type VirtualizationVirtualMachinesPartialUpdateJSONRequestBody = PatchedWritableVirtualMachineWithConfigContextRequest

// VirtualizationVirtualMachinesUpdateJSONRequestBody defines body for VirtualizationVirtualMachinesUpdate for application/json ContentType.
type VirtualizationVirtualMachinesUpdateJSONRequestBody = WritableVirtualMachineWithConfigContextRequest

// VirtualizationVirtualMachinesNotesCreateJSONRequestBody defines body for VirtualizationVirtualMachinesNotesCreate for application/json ContentType.
type VirtualizationVirtualMachinesNotesCreateJSONRequestBody = NoteInputRequest

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item
func (a *BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAggregateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAggregateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAggregateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableAggregateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAggregateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableAggregateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAggregateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAggregateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAggregateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableAggregateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAggregateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableAggregateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableAggregateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableAggregateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableAggregateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableAggregateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableAggregateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableAggregateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCVELCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCVELCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCVELCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableCVELCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCVELCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableCVELCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCableRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCableRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCableRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableCableRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCableRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableCableRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCableRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCableRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCableRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableCableRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCableRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableCableRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCableRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCableRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCableRequest_Relationships_Source_Objects_Item
func (a *BulkWritableCableRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCableRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableCableRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableCircuitRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableCircuitRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitRequest_Relationships_Source_Objects_Item
func (a *BulkWritableCircuitRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item
func (a *BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item
func (a *BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableClusterRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableClusterRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterRequest_Relationships_Source_Objects_Item
func (a *BulkWritableClusterRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item
func (a *BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortRequest_Relationships_Source_Objects_Item
func (a *BulkWritableConsolePortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item
func (a *BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContactLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContactLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContactLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableContactLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContactLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableContactLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableContractLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableContractLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableContractLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableContractLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableContractLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableContractLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFQDNRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFQDNRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFQDNRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableFQDNRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFQDNRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableFQDNRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFQDNRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFQDNRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFQDNRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableFQDNRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFQDNRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableFQDNRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFQDNRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFQDNRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFQDNRequest_Relationships_Source_Objects_Item
func (a *BulkWritableFQDNRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFQDNRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableFQDNRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortRequest_Relationships_Source_Objects_Item
func (a *BulkWritableFrontPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item
func (a *BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPAddressRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPAddressRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPAddressRequest_Relationships_Source_Objects_Item
func (a *BulkWritableIPAddressRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPAddressRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPAddressRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableIPRangeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableIPRangeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableIPRangeRequest_Relationships_Source_Objects_Item
func (a *BulkWritableIPRangeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableIPRangeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableIPRangeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceRequest_Relationships_Source_Objects_Item
func (a *BulkWritableInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item
func (a *BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobHookRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobHookRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobHookRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableJobHookRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobHookRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobHookRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobHookRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobHookRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobHookRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableJobHookRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobHookRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobHookRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobHookRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobHookRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobHookRequest_Relationships_Source_Objects_Item
func (a *BulkWritableJobHookRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobHookRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobHookRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableJobRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableJobRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableJobRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableJobRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableJobRequest_Relationships_Source_Objects_Item
func (a *BulkWritableJobRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableJobRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableJobRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableLocationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableLocationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationRequest_Relationships_Source_Objects_Item
func (a *BulkWritableLocationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item
func (a *BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableManufacturerRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableManufacturerRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableManufacturerRequest_Relationships_Source_Objects_Item
func (a *BulkWritableManufacturerRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableManufacturerRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableManufacturerRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePlatformRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePlatformRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePlatformRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePlatformRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePlatformRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePlatformRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePlatformRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePlatformRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePlatformRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePlatformRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePlatformRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePlatformRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePlatformRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePlatformRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePlatformRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePlatformRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePlatformRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePlatformRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePrefixRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePrefixRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePrefixRequest_Relationships_Destination_Objects_Item
func (a *BulkWritablePrefixRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePrefixRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritablePrefixRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePrefixRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePrefixRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePrefixRequest_Relationships_Peer_Objects_Item
func (a *BulkWritablePrefixRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePrefixRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritablePrefixRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritablePrefixRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritablePrefixRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritablePrefixRequest_Relationships_Source_Objects_Item
func (a *BulkWritablePrefixRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritablePrefixRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritablePrefixRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item
func (a *BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableProviderRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableProviderRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableProviderRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableProviderRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableProviderRequest_Relationships_Source_Objects_Item
func (a *BulkWritableProviderRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableProviderRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableProviderRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRIRRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRIRRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRIRRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRIRRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRIRRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRIRRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRIRRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRIRRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRIRRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRIRRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRIRRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRIRRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRIRRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRIRRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRIRRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRIRRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRIRRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRIRRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRackGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRackRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRackRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRackRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackReservationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackReservationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackReservationRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRackReservationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackReservationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackReservationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRackRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRackRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRackRoleRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRackRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRackRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRackRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRearPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRearPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRearPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRegionRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRegionRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRegionRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRegionRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRegionRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRegionRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRegionRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRegionRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRegionRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRegionRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRegionRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRegionRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRegionRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRegionRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRegionRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRegionRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRegionRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRegionRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRoleRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRoleRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRoleRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item
func (a *BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableSecretRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableSecretRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretRequest_Relationships_Source_Objects_Item
func (a *BulkWritableSecretRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item
func (a *BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableServiceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableServiceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableServiceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableServiceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableServiceRequest_Relationships_Source_Objects_Item
func (a *BulkWritableServiceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableServiceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableServiceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSiteRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSiteRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSiteRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableSiteRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSiteRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableSiteRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSiteRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSiteRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSiteRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableSiteRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSiteRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableSiteRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSiteRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSiteRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSiteRequest_Relationships_Source_Objects_Item
func (a *BulkWritableSiteRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSiteRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableSiteRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableStatusRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableStatusRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableStatusRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableStatusRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableStatusRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableStatusRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableStatusRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableStatusRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableStatusRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableStatusRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableStatusRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableStatusRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableStatusRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableStatusRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableStatusRequest_Relationships_Source_Objects_Item
func (a *BulkWritableStatusRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableStatusRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableStatusRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableTenantRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableTenantRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableTenantRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableTenantRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableTenantRequest_Relationships_Source_Objects_Item
func (a *BulkWritableTenantRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableTenantRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableTenantRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableUserObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableUserObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableUserObjectRequest_Relationships_Source_Objects_Item
func (a *BulkWritableUserObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableUserObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableUserObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVLANRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVLANRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVLANRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVLANRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVLANRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVLANRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVLANRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVLANRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVRFRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVRFRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVRFRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVRFRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVRFRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVRFRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVRFRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVRFRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVRFRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVRFRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVRFRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVRFRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVRFRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVRFRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVRFRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVRFRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVRFRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVRFRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableZoneRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableZoneRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableZoneRequest_Relationships_Destination_Objects_Item
func (a *BulkWritableZoneRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *BulkWritableZoneRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a BulkWritableZoneRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableZoneRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableZoneRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableZoneRequest_Relationships_Peer_Objects_Item
func (a *BulkWritableZoneRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *BulkWritableZoneRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a BulkWritableZoneRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for BulkWritableZoneRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a BulkWritableZoneRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for BulkWritableZoneRequest_Relationships_Source_Objects_Item
func (a *BulkWritableZoneRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *BulkWritableZoneRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for BulkWritableZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a BulkWritableZoneRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for CircuitTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a CircuitTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for CircuitTypeRequest_Relationships_Destination_Objects_Item
func (a *CircuitTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *CircuitTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a CircuitTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for CircuitTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a CircuitTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for CircuitTypeRequest_Relationships_Peer_Objects_Item
func (a *CircuitTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *CircuitTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a CircuitTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for CircuitTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a CircuitTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for CircuitTypeRequest_Relationships_Source_Objects_Item
func (a *CircuitTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *CircuitTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for CircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a CircuitTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterGroupRequest_Relationships_Destination_Objects_Item
func (a *ClusterGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ClusterGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ClusterGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterGroupRequest_Relationships_Peer_Objects_Item
func (a *ClusterGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ClusterGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ClusterGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterGroupRequest_Relationships_Source_Objects_Item
func (a *ClusterGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ClusterGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ClusterGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterTypeRequest_Relationships_Destination_Objects_Item
func (a *ClusterTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ClusterTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ClusterTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterTypeRequest_Relationships_Peer_Objects_Item
func (a *ClusterTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ClusterTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ClusterTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ClusterTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ClusterTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ClusterTypeRequest_Relationships_Source_Objects_Item
func (a *ClusterTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ClusterTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ClusterTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ConfigContextSchemaRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ConfigContextSchemaRequest_Relationships_Destination_Objects_Item
func (a *ConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ConfigContextSchemaRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ConfigContextSchemaRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ConfigContextSchemaRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ConfigContextSchemaRequest_Relationships_Peer_Objects_Item
func (a *ConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ConfigContextSchemaRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ConfigContextSchemaRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ConfigContextSchemaRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ConfigContextSchemaRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ConfigContextSchemaRequest_Relationships_Source_Objects_Item
func (a *ConfigContextSchemaRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ConfigContextSchemaRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ConfigContextSchemaRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DeviceRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a DeviceRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DeviceRoleRequest_Relationships_Destination_Objects_Item
func (a *DeviceRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *DeviceRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a DeviceRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DeviceRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a DeviceRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DeviceRoleRequest_Relationships_Peer_Objects_Item
func (a *DeviceRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *DeviceRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a DeviceRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DeviceRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a DeviceRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DeviceRoleRequest_Relationships_Source_Objects_Item
func (a *DeviceRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *DeviceRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a DeviceRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DynamicGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a DynamicGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DynamicGroupRequest_Relationships_Destination_Objects_Item
func (a *DynamicGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *DynamicGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a DynamicGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DynamicGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a DynamicGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DynamicGroupRequest_Relationships_Peer_Objects_Item
func (a *DynamicGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *DynamicGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a DynamicGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for DynamicGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a DynamicGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for DynamicGroupRequest_Relationships_Source_Objects_Item
func (a *DynamicGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *DynamicGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for DynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a DynamicGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ExportTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ExportTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ExportTemplateRequest_Relationships_Destination_Objects_Item
func (a *ExportTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ExportTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ExportTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ExportTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ExportTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ExportTemplateRequest_Relationships_Peer_Objects_Item
func (a *ExportTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ExportTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ExportTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ExportTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ExportTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ExportTemplateRequest_Relationships_Source_Objects_Item
func (a *ExportTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ExportTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ExportTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for GitRepositoryRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a GitRepositoryRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for GitRepositoryRequest_Relationships_Destination_Objects_Item
func (a *GitRepositoryRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *GitRepositoryRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a GitRepositoryRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for GitRepositoryRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a GitRepositoryRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for GitRepositoryRequest_Relationships_Peer_Objects_Item
func (a *GitRepositoryRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *GitRepositoryRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a GitRepositoryRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for GitRepositoryRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a GitRepositoryRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for GitRepositoryRequest_Relationships_Source_Objects_Item
func (a *GitRepositoryRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *GitRepositoryRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for GitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a GitRepositoryRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for IPRangeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a IPRangeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for IPRangeRequest_Relationships_Destination_Objects_Item
func (a *IPRangeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for IPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *IPRangeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for IPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a IPRangeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for IPRangeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a IPRangeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for IPRangeRequest_Relationships_Peer_Objects_Item
func (a *IPRangeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for IPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *IPRangeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for IPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a IPRangeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for IPRangeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a IPRangeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for IPRangeRequest_Relationships_Source_Objects_Item
func (a *IPRangeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for IPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *IPRangeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for IPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a IPRangeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobHookRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a JobHookRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobHookRequest_Relationships_Destination_Objects_Item
func (a *JobHookRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *JobHookRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a JobHookRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobHookRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a JobHookRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobHookRequest_Relationships_Peer_Objects_Item
func (a *JobHookRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *JobHookRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a JobHookRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobHookRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a JobHookRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobHookRequest_Relationships_Source_Objects_Item
func (a *JobHookRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *JobHookRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a JobHookRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a JobRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobRequest_Relationships_Destination_Objects_Item
func (a *JobRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *JobRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a JobRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a JobRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobRequest_Relationships_Peer_Objects_Item
func (a *JobRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *JobRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a JobRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for JobRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a JobRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for JobRequest_Relationships_Source_Objects_Item
func (a *JobRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for JobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *JobRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for JobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a JobRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ManufacturerRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ManufacturerRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ManufacturerRequest_Relationships_Destination_Objects_Item
func (a *ManufacturerRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ManufacturerRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ManufacturerRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ManufacturerRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ManufacturerRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ManufacturerRequest_Relationships_Peer_Objects_Item
func (a *ManufacturerRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ManufacturerRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ManufacturerRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ManufacturerRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ManufacturerRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ManufacturerRequest_Relationships_Source_Objects_Item
func (a *ManufacturerRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ManufacturerRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ManufacturerRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for NATPolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a NATPolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for NATPolicyRequest_Relationships_Destination_Objects_Item
func (a *NATPolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for NATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *NATPolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for NATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a NATPolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for NATPolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a NATPolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for NATPolicyRequest_Relationships_Peer_Objects_Item
func (a *NATPolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for NATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *NATPolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for NATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a NATPolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for NATPolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a NATPolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for NATPolicyRequest_Relationships_Source_Objects_Item
func (a *NATPolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for NATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *NATPolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for NATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a NATPolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAddressObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAggregateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAggregateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableAggregateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCVELCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCVELCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCVELCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCableRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCableRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCableRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableCircuitTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableClusterTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConfigContextSchemaRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContactLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContactLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContactLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContractLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContractLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableContractLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableDynamicGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableExportTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFQDNRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFQDNRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFQDNRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableGitRepositoryRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableHardwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPAddressRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPAddressRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPAddressRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPRangeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPRangeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableIPRangeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableInventoryItemRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobHookRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobHookRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobHookRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableJobRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableLocationTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableManufacturerRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableManufacturerRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableManufacturerRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalDestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_OriginalSourceServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedDestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableNATPolicyRuleRequest_TranslatedSourceServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePlatformRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePlatformRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePlatformRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServiceGroups_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_DestinationServices_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_AddressObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddressGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceAddresses_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUserGroups_UserObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePolicyRuleRequest_SourceUsers_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerFeedRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPanelRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePrefixRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePrefixRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritablePrefixRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderNetworkRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableProviderRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRIRRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRIRRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRIRRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackReservationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackReservationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackReservationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRackRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRegionRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRegionRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRegionRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableRouteTargetRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSecretsGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectGroupRequest_ServiceObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableServiceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSiteRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSiteRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSiteRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableStatusRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableStatusRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableStatusRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTagSerializerVersion13Request_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableTenantRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectGroupRequest_UserObjects_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableUserObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVLANRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVMInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVRFRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVRFRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVRFRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualChassisRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableVulnerabilityLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item
func (a *PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableZoneRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item
func (a *PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableZoneRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item
func (a *PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedBulkWritableZoneRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedCircuitTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedCircuitTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedCircuitTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedCircuitTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedCircuitTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedCircuitTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedCircuitTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedCircuitTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedCircuitTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedClusterGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedClusterGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedClusterGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedClusterGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedClusterGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedClusterGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedClusterTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedClusterTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedClusterTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedClusterTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedClusterTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedClusterTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedClusterTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedClusterTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedClusterTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedClusterTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedClusterTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item
func (a *PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedConfigContextSchemaRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item
func (a *PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedConfigContextSchemaRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item
func (a *PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedConfigContextSchemaRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedDeviceRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedDeviceRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDeviceRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDeviceRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDeviceRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedDeviceRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedDeviceRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDeviceRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedDeviceRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedDynamicGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedDynamicGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedDynamicGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedDynamicGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedDynamicGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedDynamicGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedDynamicGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedDynamicGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedDynamicGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedExportTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedExportTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedExportTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedExportTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedExportTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedExportTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedExportTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedExportTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedExportTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedExportTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedExportTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedExportTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedExportTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedExportTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedExportTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedExportTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedExportTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedExportTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedExportTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedIPRangeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedIPRangeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedIPRangeRequest_Relationships_Destination_Objects_Item
func (a *PatchedIPRangeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedIPRangeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedIPRangeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedIPRangeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedIPRangeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedIPRangeRequest_Relationships_Peer_Objects_Item
func (a *PatchedIPRangeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedIPRangeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedIPRangeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedIPRangeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedIPRangeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedIPRangeRequest_Relationships_Source_Objects_Item
func (a *PatchedIPRangeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedIPRangeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedIPRangeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedIPRangeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobHookRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobHookRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobHookRequest_Relationships_Destination_Objects_Item
func (a *PatchedJobHookRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedJobHookRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedJobHookRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobHookRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobHookRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobHookRequest_Relationships_Peer_Objects_Item
func (a *PatchedJobHookRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedJobHookRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedJobHookRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobHookRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobHookRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobHookRequest_Relationships_Source_Objects_Item
func (a *PatchedJobHookRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedJobHookRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobHookRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedJobHookRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobRequest_Relationships_Destination_Objects_Item
func (a *PatchedJobRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedJobRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedJobRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobRequest_Relationships_Peer_Objects_Item
func (a *PatchedJobRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedJobRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedJobRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedJobRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedJobRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedJobRequest_Relationships_Source_Objects_Item
func (a *PatchedJobRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedJobRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedJobRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedJobRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedManufacturerRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedManufacturerRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedManufacturerRequest_Relationships_Destination_Objects_Item
func (a *PatchedManufacturerRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedManufacturerRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedManufacturerRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedManufacturerRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedManufacturerRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedManufacturerRequest_Relationships_Peer_Objects_Item
func (a *PatchedManufacturerRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedManufacturerRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedManufacturerRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedManufacturerRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedManufacturerRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedManufacturerRequest_Relationships_Source_Objects_Item
func (a *PatchedManufacturerRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedManufacturerRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedManufacturerRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedManufacturerRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedNATPolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedNATPolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedNATPolicyRequest_Relationships_Destination_Objects_Item
func (a *PatchedNATPolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedNATPolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedNATPolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedNATPolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedNATPolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedNATPolicyRequest_Relationships_Peer_Objects_Item
func (a *PatchedNATPolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedNATPolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedNATPolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedNATPolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedNATPolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedNATPolicyRequest_Relationships_Source_Objects_Item
func (a *PatchedNATPolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedNATPolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedNATPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedNATPolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedPolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedPolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedPolicyRequest_Relationships_Destination_Objects_Item
func (a *PatchedPolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedPolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedPolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedPolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedPolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedPolicyRequest_Relationships_Peer_Objects_Item
func (a *PatchedPolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedPolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedPolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedPolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedPolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedPolicyRequest_Relationships_Source_Objects_Item
func (a *PatchedPolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedPolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedPolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedPolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedProviderLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedProviderLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedProviderLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedProviderLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedProviderLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedProviderLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderRequest_Relationships_Destination_Objects_Item
func (a *PatchedProviderRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedProviderRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderRequest_Relationships_Peer_Objects_Item
func (a *PatchedProviderRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedProviderRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedProviderRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedProviderRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedProviderRequest_Relationships_Source_Objects_Item
func (a *PatchedProviderRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedProviderRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedProviderRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRIRRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRIRRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRIRRequest_Relationships_Destination_Objects_Item
func (a *PatchedRIRRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedRIRRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedRIRRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRIRRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRIRRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRIRRequest_Relationships_Peer_Objects_Item
func (a *PatchedRIRRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedRIRRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedRIRRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRIRRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRIRRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRIRRequest_Relationships_Source_Objects_Item
func (a *PatchedRIRRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedRIRRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedRIRRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRackRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRackRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRackRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedRackRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedRackRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedRackRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRackRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRackRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRackRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedRackRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedRackRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedRackRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRackRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRackRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRackRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedRackRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedRackRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedRackRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRoleRequest_Relationships_Destination_Objects_Item
func (a *PatchedRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRoleRequest_Relationships_Peer_Objects_Item
func (a *PatchedRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedRoleRequest_Relationships_Source_Objects_Item
func (a *PatchedRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretRequest_Relationships_Destination_Objects_Item
func (a *PatchedSecretRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedSecretRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretRequest_Relationships_Peer_Objects_Item
func (a *PatchedSecretRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedSecretRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretRequest_Relationships_Source_Objects_Item
func (a *PatchedSecretRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedSecretRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedSecretsGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedSecretsGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedSecretsGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedSecretsGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedSecretsGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedSecretsGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedSecretsGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedSecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedSecretsGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedServiceObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedServiceObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedServiceObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedServiceObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedServiceObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedServiceObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedServiceObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedServiceObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedServiceObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedServiceObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedServiceObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedServiceObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedServiceObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedServiceObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedServiceObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedServiceObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedServiceObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedServiceObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedStatusRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedStatusRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedStatusRequest_Relationships_Destination_Objects_Item
func (a *PatchedStatusRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedStatusRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedStatusRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedStatusRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedStatusRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedStatusRequest_Relationships_Peer_Objects_Item
func (a *PatchedStatusRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedStatusRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedStatusRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedStatusRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedStatusRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedStatusRequest_Relationships_Source_Objects_Item
func (a *PatchedStatusRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedStatusRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedStatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedStatusRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item
func (a *PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedTagSerializerVersion13Request_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item
func (a *PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedTagSerializerVersion13Request_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item
func (a *PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedTagSerializerVersion13Request_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedUserObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedUserObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedUserObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedUserObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedUserObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedUserObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedUserObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedUserObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedUserObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedUserObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedUserObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedUserObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedUserObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedUserObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedUserObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedUserObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedUserObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedUserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedUserObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedVulnerabilityLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedVulnerabilityLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedVulnerabilityLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAddressObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAggregateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAggregateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableAggregateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableAggregateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableAggregateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableAggregateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableAggregateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableAggregateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCVELCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCVELCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCVELCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCableRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCableRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCableRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableCableRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCableRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCableRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCableRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCableRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCableRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableCableRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCableRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCableRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCableRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCableRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCableRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableCableRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCableRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCableRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableCircuitRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableCircuitTerminationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableClusterRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableClusterRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableClusterRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableClusterRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableClusterRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableClusterRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableClusterRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableClusterRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableClusterRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableClusterRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableClusterRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableClusterRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableClusterRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableClusterRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableClusterRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableClusterRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableClusterRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableClusterRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContactLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContactLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContactLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContractLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContractLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableContractLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFQDNRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFQDNRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFQDNRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFQDNRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFQDNRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableFQDNRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFQDNRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFQDNRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableGitRepositoryRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableGitRepositoryRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableGitRepositoryRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableHardwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableHardwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableHardwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableIPAddressRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableIPAddressRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableIPAddressRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInventoryItemRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInventoryItemRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableInventoryItemRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableLocationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableLocationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableLocationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableLocationTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePlatformRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePlatformRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePlatformRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePlatformRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePlatformRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePlatformRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePlatformRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePlatformRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerFeedRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerFeedRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerFeedRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPanelRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPanelRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPanelRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePrefixRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePrefixRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritablePrefixRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritablePrefixRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritablePrefixRequest_Relationships_Source_Objects_Item
func (a *PatchedWritablePrefixRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritablePrefixRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritablePrefixRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableProviderNetworkRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableProviderNetworkRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableProviderNetworkRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRackRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRackRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRackRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackReservationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackReservationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRackReservationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRearPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRearPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRegionRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRegionRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRegionRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRegionRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRegionRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRegionRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRegionRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRegionRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRegionRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRegionRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRegionRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRegionRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRegionRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRegionRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRegionRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRegionRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRegionRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRegionRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRouteTargetRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRouteTargetRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableRouteTargetRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableServiceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableServiceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableServiceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableServiceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableServiceRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableServiceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableServiceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableServiceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSiteRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSiteRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSiteRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableSiteRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSiteRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSiteRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSiteRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSiteRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSiteRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableSiteRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSiteRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSiteRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSiteRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSiteRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSiteRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableSiteRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSiteRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSiteRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableTenantRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableTenantRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableTenantRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableTenantRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableTenantRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableTenantRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableTenantRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableTenantRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableUserObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVLANRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVLANRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVLANRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVLANRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVLANRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVLANRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVLANRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVLANRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVMInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVMInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVMInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVRFRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVRFRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVRFRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVRFRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVRFRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVRFRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVRFRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVRFRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVRFRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVRFRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVRFRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVRFRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVRFRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVRFRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVRFRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVRFRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVRFRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVRFRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualChassisRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualChassisRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualChassisRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedWritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedZoneRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedZoneRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedZoneRequest_Relationships_Destination_Objects_Item
func (a *PatchedZoneRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PatchedZoneRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PatchedZoneRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedZoneRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedZoneRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedZoneRequest_Relationships_Peer_Objects_Item
func (a *PatchedZoneRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PatchedZoneRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PatchedZoneRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PatchedZoneRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PatchedZoneRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PatchedZoneRequest_Relationships_Source_Objects_Item
func (a *PatchedZoneRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PatchedZoneRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PatchedZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PatchedZoneRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PolicyRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a PolicyRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PolicyRequest_Relationships_Destination_Objects_Item
func (a *PolicyRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *PolicyRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PolicyRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a PolicyRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PolicyRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a PolicyRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PolicyRequest_Relationships_Peer_Objects_Item
func (a *PolicyRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *PolicyRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PolicyRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a PolicyRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for PolicyRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a PolicyRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for PolicyRequest_Relationships_Source_Objects_Item
func (a *PolicyRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for PolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *PolicyRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for PolicyRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a PolicyRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderLCMRequest_Relationships_Destination_Objects_Item
func (a *ProviderLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ProviderLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ProviderLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderLCMRequest_Relationships_Peer_Objects_Item
func (a *ProviderLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ProviderLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ProviderLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderLCMRequest_Relationships_Source_Objects_Item
func (a *ProviderLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ProviderLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ProviderLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderRequest_Relationships_Destination_Objects_Item
func (a *ProviderRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ProviderRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ProviderRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderRequest_Relationships_Peer_Objects_Item
func (a *ProviderRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ProviderRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ProviderRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ProviderRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ProviderRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ProviderRequest_Relationships_Source_Objects_Item
func (a *ProviderRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ProviderRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ProviderRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ProviderRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RIRRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a RIRRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RIRRequest_Relationships_Destination_Objects_Item
func (a *RIRRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *RIRRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RIRRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a RIRRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RIRRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a RIRRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RIRRequest_Relationships_Peer_Objects_Item
func (a *RIRRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *RIRRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RIRRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a RIRRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RIRRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a RIRRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RIRRequest_Relationships_Source_Objects_Item
func (a *RIRRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *RIRRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RIRRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a RIRRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RackRoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a RackRoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RackRoleRequest_Relationships_Destination_Objects_Item
func (a *RackRoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *RackRoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RackRoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a RackRoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RackRoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a RackRoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RackRoleRequest_Relationships_Peer_Objects_Item
func (a *RackRoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *RackRoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RackRoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a RackRoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RackRoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a RackRoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RackRoleRequest_Relationships_Source_Objects_Item
func (a *RackRoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *RackRoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RackRoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a RackRoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RoleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a RoleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RoleRequest_Relationships_Destination_Objects_Item
func (a *RoleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *RoleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RoleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a RoleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RoleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a RoleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RoleRequest_Relationships_Peer_Objects_Item
func (a *RoleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *RoleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RoleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a RoleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for RoleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a RoleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for RoleRequest_Relationships_Source_Objects_Item
func (a *RoleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for RoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *RoleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for RoleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a RoleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretRequest_Relationships_Destination_Objects_Item
func (a *SecretRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *SecretRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a SecretRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretRequest_Relationships_Peer_Objects_Item
func (a *SecretRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *SecretRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a SecretRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretRequest_Relationships_Source_Objects_Item
func (a *SecretRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *SecretRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a SecretRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretsGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretsGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretsGroupRequest_Relationships_Destination_Objects_Item
func (a *SecretsGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *SecretsGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a SecretsGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretsGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretsGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretsGroupRequest_Relationships_Peer_Objects_Item
func (a *SecretsGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *SecretsGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a SecretsGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for SecretsGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a SecretsGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for SecretsGroupRequest_Relationships_Source_Objects_Item
func (a *SecretsGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *SecretsGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for SecretsGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a SecretsGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ServiceObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ServiceObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ServiceObjectRequest_Relationships_Destination_Objects_Item
func (a *ServiceObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ServiceObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ServiceObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ServiceObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ServiceObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ServiceObjectRequest_Relationships_Peer_Objects_Item
func (a *ServiceObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ServiceObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ServiceObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ServiceObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ServiceObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ServiceObjectRequest_Relationships_Source_Objects_Item
func (a *ServiceObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ServiceObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ServiceObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ServiceObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for StatusRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a StatusRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for StatusRequest_Relationships_Destination_Objects_Item
func (a *StatusRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for StatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *StatusRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for StatusRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a StatusRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for StatusRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a StatusRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for StatusRequest_Relationships_Peer_Objects_Item
func (a *StatusRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for StatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *StatusRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for StatusRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a StatusRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for StatusRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a StatusRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for StatusRequest_Relationships_Source_Objects_Item
func (a *StatusRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for StatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *StatusRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for StatusRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a StatusRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for TagSerializerVersion13Request_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a TagSerializerVersion13Request_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for TagSerializerVersion13Request_Relationships_Destination_Objects_Item
func (a *TagSerializerVersion13Request_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *TagSerializerVersion13Request_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a TagSerializerVersion13Request_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for TagSerializerVersion13Request_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a TagSerializerVersion13Request_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for TagSerializerVersion13Request_Relationships_Peer_Objects_Item
func (a *TagSerializerVersion13Request_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *TagSerializerVersion13Request_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a TagSerializerVersion13Request_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for TagSerializerVersion13Request_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a TagSerializerVersion13Request_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for TagSerializerVersion13Request_Relationships_Source_Objects_Item
func (a *TagSerializerVersion13Request_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *TagSerializerVersion13Request_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for TagSerializerVersion13Request_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a TagSerializerVersion13Request_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for UserObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a UserObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for UserObjectRequest_Relationships_Destination_Objects_Item
func (a *UserObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for UserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *UserObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for UserObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a UserObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for UserObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a UserObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for UserObjectRequest_Relationships_Peer_Objects_Item
func (a *UserObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for UserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *UserObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for UserObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a UserObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for UserObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a UserObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for UserObjectRequest_Relationships_Source_Objects_Item
func (a *UserObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for UserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *UserObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for UserObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a UserObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for VulnerabilityLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a VulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for VulnerabilityLCMRequest_Relationships_Destination_Objects_Item
func (a *VulnerabilityLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *VulnerabilityLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a VulnerabilityLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for VulnerabilityLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a VulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for VulnerabilityLCMRequest_Relationships_Peer_Objects_Item
func (a *VulnerabilityLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *VulnerabilityLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a VulnerabilityLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for VulnerabilityLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a VulnerabilityLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for VulnerabilityLCMRequest_Relationships_Source_Objects_Item
func (a *VulnerabilityLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *VulnerabilityLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for VulnerabilityLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a VulnerabilityLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item
func (a *WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectRequest_Relationships_Destination_Objects_Item
func (a *WritableAddressObjectRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectRequest_Relationships_Peer_Objects_Item
func (a *WritableAddressObjectRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAddressObjectRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAddressObjectRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAddressObjectRequest_Relationships_Source_Objects_Item
func (a *WritableAddressObjectRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableAddressObjectRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAddressObjectRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableAddressObjectRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAggregateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAggregateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAggregateRequest_Relationships_Destination_Objects_Item
func (a *WritableAggregateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableAggregateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableAggregateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAggregateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAggregateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAggregateRequest_Relationships_Peer_Objects_Item
func (a *WritableAggregateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableAggregateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableAggregateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableAggregateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableAggregateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableAggregateRequest_Relationships_Source_Objects_Item
func (a *WritableAggregateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableAggregateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableAggregateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableAggregateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCVELCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCVELCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCVELCMRequest_Relationships_Destination_Objects_Item
func (a *WritableCVELCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableCVELCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableCVELCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCVELCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCVELCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCVELCMRequest_Relationships_Peer_Objects_Item
func (a *WritableCVELCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableCVELCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableCVELCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCVELCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCVELCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCVELCMRequest_Relationships_Source_Objects_Item
func (a *WritableCVELCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableCVELCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCVELCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableCVELCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCableRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCableRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCableRequest_Relationships_Destination_Objects_Item
func (a *WritableCableRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableCableRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCableRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableCableRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCableRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCableRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCableRequest_Relationships_Peer_Objects_Item
func (a *WritableCableRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableCableRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCableRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableCableRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCableRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCableRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCableRequest_Relationships_Source_Objects_Item
func (a *WritableCableRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableCableRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCableRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableCableRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitRequest_Relationships_Destination_Objects_Item
func (a *WritableCircuitRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableCircuitRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitRequest_Relationships_Peer_Objects_Item
func (a *WritableCircuitRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableCircuitRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitRequest_Relationships_Source_Objects_Item
func (a *WritableCircuitRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableCircuitRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item
func (a *WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableCircuitTerminationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item
func (a *WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableCircuitTerminationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableCircuitTerminationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableCircuitTerminationRequest_Relationships_Source_Objects_Item
func (a *WritableCircuitTerminationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableCircuitTerminationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableCircuitTerminationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableCircuitTerminationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableClusterRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableClusterRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableClusterRequest_Relationships_Destination_Objects_Item
func (a *WritableClusterRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableClusterRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableClusterRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableClusterRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableClusterRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableClusterRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableClusterRequest_Relationships_Peer_Objects_Item
func (a *WritableClusterRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableClusterRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableClusterRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableClusterRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableClusterRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableClusterRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableClusterRequest_Relationships_Source_Objects_Item
func (a *WritableClusterRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableClusterRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableClusterRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableClusterRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortRequest_Relationships_Destination_Objects_Item
func (a *WritableConsolePortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortRequest_Relationships_Peer_Objects_Item
func (a *WritableConsolePortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortRequest_Relationships_Source_Objects_Item
func (a *WritableConsolePortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableConsolePortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item
func (a *WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item
func (a *WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortRequest_Relationships_Source_Objects_Item
func (a *WritableConsoleServerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableConsoleServerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContactLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContactLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContactLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableContactLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableContactLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableContactLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContactLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContactLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContactLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableContactLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableContactLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableContactLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContactLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContactLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContactLCMRequest_Relationships_Source_Objects_Item
func (a *WritableContactLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableContactLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContactLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableContactLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContractLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContractLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContractLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableContractLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableContractLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableContractLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContractLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContractLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContractLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableContractLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableContractLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableContractLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableContractLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableContractLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableContractLCMRequest_Relationships_Source_Objects_Item
func (a *WritableContractLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableContractLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableContractLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableContractLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayRequest_Relationships_Destination_Objects_Item
func (a *WritableDeviceBayRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayRequest_Relationships_Peer_Objects_Item
func (a *WritableDeviceBayRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayRequest_Relationships_Source_Objects_Item
func (a *WritableDeviceBayRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableDeviceBayTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableDeviceRedundancyGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableDeviceRedundancyGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableDeviceRedundancyGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceTypeRequest_Relationships_Destination_Objects_Item
func (a *WritableDeviceTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableDeviceTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceTypeRequest_Relationships_Peer_Objects_Item
func (a *WritableDeviceTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableDeviceTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceTypeRequest_Relationships_Source_Objects_Item
func (a *WritableDeviceTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableDeviceTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableDeviceWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableDeviceWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableDeviceWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFQDNRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFQDNRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFQDNRequest_Relationships_Destination_Objects_Item
func (a *WritableFQDNRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableFQDNRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableFQDNRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFQDNRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFQDNRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFQDNRequest_Relationships_Peer_Objects_Item
func (a *WritableFQDNRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableFQDNRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableFQDNRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFQDNRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFQDNRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFQDNRequest_Relationships_Source_Objects_Item
func (a *WritableFQDNRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableFQDNRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFQDNRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableFQDNRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortRequest_Relationships_Destination_Objects_Item
func (a *WritableFrontPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortRequest_Relationships_Peer_Objects_Item
func (a *WritableFrontPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortRequest_Relationships_Source_Objects_Item
func (a *WritableFrontPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableFrontPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableGitRepositoryRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableGitRepositoryRequest_Relationships_Destination_Objects_Item
func (a *WritableGitRepositoryRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableGitRepositoryRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableGitRepositoryRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableGitRepositoryRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableGitRepositoryRequest_Relationships_Peer_Objects_Item
func (a *WritableGitRepositoryRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableGitRepositoryRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableGitRepositoryRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableGitRepositoryRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableGitRepositoryRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableGitRepositoryRequest_Relationships_Source_Objects_Item
func (a *WritableGitRepositoryRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableGitRepositoryRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableGitRepositoryRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableGitRepositoryRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableHardwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableHardwareLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableHardwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableHardwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableHardwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableHardwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableHardwareLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableHardwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableHardwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableHardwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableHardwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableHardwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableHardwareLCMRequest_Relationships_Source_Objects_Item
func (a *WritableHardwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableHardwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableHardwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableHardwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableIPAddressRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableIPAddressRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableIPAddressRequest_Relationships_Destination_Objects_Item
func (a *WritableIPAddressRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableIPAddressRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableIPAddressRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableIPAddressRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableIPAddressRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableIPAddressRequest_Relationships_Peer_Objects_Item
func (a *WritableIPAddressRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableIPAddressRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableIPAddressRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableIPAddressRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableIPAddressRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableIPAddressRequest_Relationships_Source_Objects_Item
func (a *WritableIPAddressRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableIPAddressRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableIPAddressRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableIPAddressRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceRequest_Relationships_Destination_Objects_Item
func (a *WritableInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceRequest_Relationships_Peer_Objects_Item
func (a *WritableInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceRequest_Relationships_Source_Objects_Item
func (a *WritableInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableInterfaceTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInventoryItemRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInventoryItemRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInventoryItemRequest_Relationships_Destination_Objects_Item
func (a *WritableInventoryItemRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableInventoryItemRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableInventoryItemRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInventoryItemRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInventoryItemRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInventoryItemRequest_Relationships_Peer_Objects_Item
func (a *WritableInventoryItemRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableInventoryItemRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableInventoryItemRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableInventoryItemRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableInventoryItemRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableInventoryItemRequest_Relationships_Source_Objects_Item
func (a *WritableInventoryItemRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableInventoryItemRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableInventoryItemRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableInventoryItemRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationRequest_Relationships_Destination_Objects_Item
func (a *WritableLocationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableLocationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableLocationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationRequest_Relationships_Peer_Objects_Item
func (a *WritableLocationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableLocationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableLocationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationRequest_Relationships_Source_Objects_Item
func (a *WritableLocationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableLocationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableLocationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationTypeRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationTypeRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationTypeRequest_Relationships_Destination_Objects_Item
func (a *WritableLocationTypeRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableLocationTypeRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableLocationTypeRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationTypeRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationTypeRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationTypeRequest_Relationships_Peer_Objects_Item
func (a *WritableLocationTypeRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableLocationTypeRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableLocationTypeRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableLocationTypeRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableLocationTypeRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableLocationTypeRequest_Relationships_Source_Objects_Item
func (a *WritableLocationTypeRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableLocationTypeRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableLocationTypeRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableLocationTypeRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableNATPolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableNATPolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item
func (a *WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableNATPolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePlatformRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePlatformRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePlatformRequest_Relationships_Destination_Objects_Item
func (a *WritablePlatformRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePlatformRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePlatformRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePlatformRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePlatformRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePlatformRequest_Relationships_Peer_Objects_Item
func (a *WritablePlatformRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePlatformRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePlatformRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePlatformRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePlatformRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePlatformRequest_Relationships_Source_Objects_Item
func (a *WritablePlatformRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePlatformRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePlatformRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePlatformRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePolicyRuleRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePolicyRuleRequest_Relationships_Destination_Objects_Item
func (a *WritablePolicyRuleRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePolicyRuleRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePolicyRuleRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePolicyRuleRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePolicyRuleRequest_Relationships_Peer_Objects_Item
func (a *WritablePolicyRuleRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePolicyRuleRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePolicyRuleRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePolicyRuleRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePolicyRuleRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePolicyRuleRequest_Relationships_Source_Objects_Item
func (a *WritablePolicyRuleRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePolicyRuleRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePolicyRuleRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePolicyRuleRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerFeedRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerFeedRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerFeedRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerFeedRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerFeedRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerFeedRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerFeedRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerFeedRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerFeedRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerFeedRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerFeedRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerFeedRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerFeedRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerFeedRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerFeedRequest_Relationships_Source_Objects_Item
func (a *WritablePowerFeedRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerFeedRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerFeedRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerFeedRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerOutletRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerOutletRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletRequest_Relationships_Source_Objects_Item
func (a *WritablePowerOutletRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item
func (a *WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerOutletTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPanelRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPanelRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPanelRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerPanelRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPanelRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerPanelRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPanelRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPanelRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPanelRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerPanelRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPanelRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerPanelRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPanelRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPanelRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPanelRequest_Relationships_Source_Objects_Item
func (a *WritablePowerPanelRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPanelRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPanelRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerPanelRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortRequest_Relationships_Source_Objects_Item
func (a *WritablePowerPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item
func (a *WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePowerPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePrefixRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePrefixRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePrefixRequest_Relationships_Destination_Objects_Item
func (a *WritablePrefixRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritablePrefixRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritablePrefixRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePrefixRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePrefixRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePrefixRequest_Relationships_Peer_Objects_Item
func (a *WritablePrefixRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritablePrefixRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritablePrefixRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritablePrefixRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritablePrefixRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritablePrefixRequest_Relationships_Source_Objects_Item
func (a *WritablePrefixRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritablePrefixRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritablePrefixRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritablePrefixRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableProviderNetworkRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableProviderNetworkRequest_Relationships_Destination_Objects_Item
func (a *WritableProviderNetworkRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableProviderNetworkRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableProviderNetworkRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableProviderNetworkRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableProviderNetworkRequest_Relationships_Peer_Objects_Item
func (a *WritableProviderNetworkRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableProviderNetworkRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableProviderNetworkRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableProviderNetworkRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableProviderNetworkRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableProviderNetworkRequest_Relationships_Source_Objects_Item
func (a *WritableProviderNetworkRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableProviderNetworkRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableProviderNetworkRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableProviderNetworkRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableRackGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRackGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRackGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableRackGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRackGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRackGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackGroupRequest_Relationships_Source_Objects_Item
func (a *WritableRackGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRackGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRackGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackRequest_Relationships_Destination_Objects_Item
func (a *WritableRackRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRackRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRackRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackRequest_Relationships_Peer_Objects_Item
func (a *WritableRackRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRackRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRackRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackRequest_Relationships_Source_Objects_Item
func (a *WritableRackRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRackRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRackRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackReservationRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackReservationRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackReservationRequest_Relationships_Destination_Objects_Item
func (a *WritableRackReservationRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRackReservationRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRackReservationRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackReservationRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackReservationRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackReservationRequest_Relationships_Peer_Objects_Item
func (a *WritableRackReservationRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRackReservationRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRackReservationRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRackReservationRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRackReservationRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRackReservationRequest_Relationships_Source_Objects_Item
func (a *WritableRackReservationRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRackReservationRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRackReservationRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRackReservationRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortRequest_Relationships_Destination_Objects_Item
func (a *WritableRearPortRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRearPortRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortRequest_Relationships_Peer_Objects_Item
func (a *WritableRearPortRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRearPortRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortRequest_Relationships_Source_Objects_Item
func (a *WritableRearPortRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRearPortRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item
func (a *WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRearPortTemplateRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item
func (a *WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRearPortTemplateRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRearPortTemplateRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRearPortTemplateRequest_Relationships_Source_Objects_Item
func (a *WritableRearPortTemplateRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRearPortTemplateRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRearPortTemplateRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRearPortTemplateRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRegionRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRegionRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRegionRequest_Relationships_Destination_Objects_Item
func (a *WritableRegionRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRegionRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRegionRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRegionRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRegionRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRegionRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRegionRequest_Relationships_Peer_Objects_Item
func (a *WritableRegionRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRegionRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRegionRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRegionRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRegionRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRegionRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRegionRequest_Relationships_Source_Objects_Item
func (a *WritableRegionRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRegionRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRegionRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRegionRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRouteTargetRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRouteTargetRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRouteTargetRequest_Relationships_Destination_Objects_Item
func (a *WritableRouteTargetRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableRouteTargetRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableRouteTargetRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRouteTargetRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRouteTargetRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRouteTargetRequest_Relationships_Peer_Objects_Item
func (a *WritableRouteTargetRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableRouteTargetRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableRouteTargetRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableRouteTargetRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableRouteTargetRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableRouteTargetRequest_Relationships_Source_Objects_Item
func (a *WritableRouteTargetRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableRouteTargetRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableRouteTargetRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableRouteTargetRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableServiceObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableServiceObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item
func (a *WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableServiceObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceRequest_Relationships_Destination_Objects_Item
func (a *WritableServiceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableServiceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableServiceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceRequest_Relationships_Peer_Objects_Item
func (a *WritableServiceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableServiceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableServiceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableServiceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableServiceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableServiceRequest_Relationships_Source_Objects_Item
func (a *WritableServiceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableServiceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableServiceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableServiceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSiteRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSiteRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSiteRequest_Relationships_Destination_Objects_Item
func (a *WritableSiteRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableSiteRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSiteRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableSiteRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSiteRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSiteRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSiteRequest_Relationships_Peer_Objects_Item
func (a *WritableSiteRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableSiteRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSiteRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableSiteRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSiteRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSiteRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSiteRequest_Relationships_Source_Objects_Item
func (a *WritableSiteRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableSiteRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSiteRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableSiteRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareImageLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareImageLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item
func (a *WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareImageLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *WritableSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableTenantGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableTenantGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableTenantGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableTenantGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableTenantGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableTenantGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantGroupRequest_Relationships_Source_Objects_Item
func (a *WritableTenantGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableTenantGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableTenantGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantRequest_Relationships_Destination_Objects_Item
func (a *WritableTenantRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableTenantRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableTenantRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantRequest_Relationships_Peer_Objects_Item
func (a *WritableTenantRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableTenantRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableTenantRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableTenantRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableTenantRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableTenantRequest_Relationships_Source_Objects_Item
func (a *WritableTenantRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableTenantRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableTenantRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableTenantRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableUserObjectGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableUserObjectGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableUserObjectGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableUserObjectGroupRequest_Relationships_Source_Objects_Item
func (a *WritableUserObjectGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableUserObjectGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableUserObjectGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableUserObjectGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANGroupRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANGroupRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANGroupRequest_Relationships_Destination_Objects_Item
func (a *WritableVLANGroupRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVLANGroupRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVLANGroupRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANGroupRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANGroupRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANGroupRequest_Relationships_Peer_Objects_Item
func (a *WritableVLANGroupRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVLANGroupRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVLANGroupRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANGroupRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANGroupRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANGroupRequest_Relationships_Source_Objects_Item
func (a *WritableVLANGroupRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVLANGroupRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANGroupRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVLANGroupRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANRequest_Relationships_Destination_Objects_Item
func (a *WritableVLANRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVLANRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVLANRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANRequest_Relationships_Peer_Objects_Item
func (a *WritableVLANRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVLANRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVLANRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVLANRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVLANRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVLANRequest_Relationships_Source_Objects_Item
func (a *WritableVLANRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVLANRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVLANRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVLANRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVMInterfaceRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVMInterfaceRequest_Relationships_Destination_Objects_Item
func (a *WritableVMInterfaceRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVMInterfaceRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVMInterfaceRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVMInterfaceRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVMInterfaceRequest_Relationships_Peer_Objects_Item
func (a *WritableVMInterfaceRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVMInterfaceRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVMInterfaceRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVMInterfaceRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVMInterfaceRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVMInterfaceRequest_Relationships_Source_Objects_Item
func (a *WritableVMInterfaceRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVMInterfaceRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVMInterfaceRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVMInterfaceRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVRFRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVRFRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVRFRequest_Relationships_Destination_Objects_Item
func (a *WritableVRFRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVRFRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVRFRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVRFRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVRFRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVRFRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVRFRequest_Relationships_Peer_Objects_Item
func (a *WritableVRFRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVRFRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVRFRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVRFRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVRFRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVRFRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVRFRequest_Relationships_Source_Objects_Item
func (a *WritableVRFRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVRFRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVRFRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVRFRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableValidatedSoftwareLCMRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableValidatedSoftwareLCMRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableValidatedSoftwareLCMRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualChassisRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualChassisRequest_Relationships_Destination_Objects_Item
func (a *WritableVirtualChassisRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualChassisRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVirtualChassisRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualChassisRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualChassisRequest_Relationships_Peer_Objects_Item
func (a *WritableVirtualChassisRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualChassisRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVirtualChassisRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualChassisRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualChassisRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualChassisRequest_Relationships_Source_Objects_Item
func (a *WritableVirtualChassisRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualChassisRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualChassisRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVirtualChassisRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a WritableVirtualMachineWithConfigContextRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ZoneRequest_Relationships_Destination_Objects_Item. Returns the specified
// element and whether it was found
func (a ZoneRequest_Relationships_Destination_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ZoneRequest_Relationships_Destination_Objects_Item
func (a *ZoneRequest_Relationships_Destination_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a *ZoneRequest_Relationships_Destination_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ZoneRequest_Relationships_Destination_Objects_Item to handle AdditionalProperties
func (a ZoneRequest_Relationships_Destination_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ZoneRequest_Relationships_Peer_Objects_Item. Returns the specified
// element and whether it was found
func (a ZoneRequest_Relationships_Peer_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ZoneRequest_Relationships_Peer_Objects_Item
func (a *ZoneRequest_Relationships_Peer_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a *ZoneRequest_Relationships_Peer_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ZoneRequest_Relationships_Peer_Objects_Item to handle AdditionalProperties
func (a ZoneRequest_Relationships_Peer_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// Getter for additional properties for ZoneRequest_Relationships_Source_Objects_Item. Returns the specified
// element and whether it was found
func (a ZoneRequest_Relationships_Source_Objects_Item) Get(fieldName string) (value interface{}, found bool) {
	if a.AdditionalProperties != nil {
		value, found = a.AdditionalProperties[fieldName]
	}
	return
}

// Setter for additional properties for ZoneRequest_Relationships_Source_Objects_Item
func (a *ZoneRequest_Relationships_Source_Objects_Item) Set(fieldName string, value interface{}) {
	if a.AdditionalProperties == nil {
		a.AdditionalProperties = make(map[string]interface{})
	}
	a.AdditionalProperties[fieldName] = value
}

// Override default JSON handling for ZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a *ZoneRequest_Relationships_Source_Objects_Item) UnmarshalJSON(b []byte) error {
	object := make(map[string]json.RawMessage)
	err := json.Unmarshal(b, &object)
	if err != nil {
		return err
	}

	if raw, found := object["display"]; found {
		err = json.Unmarshal(raw, &a.Display)
		if err != nil {
			return fmt.Errorf("error reading 'display': %w", err)
		}
		delete(object, "display")
	}

	if raw, found := object["id"]; found {
		err = json.Unmarshal(raw, &a.Id)
		if err != nil {
			return fmt.Errorf("error reading 'id': %w", err)
		}
		delete(object, "id")
	}

	if raw, found := object["url"]; found {
		err = json.Unmarshal(raw, &a.Url)
		if err != nil {
			return fmt.Errorf("error reading 'url': %w", err)
		}
		delete(object, "url")
	}

	if len(object) != 0 {
		a.AdditionalProperties = make(map[string]interface{})
		for fieldName, fieldBuf := range object {
			var fieldVal interface{}
			err := json.Unmarshal(fieldBuf, &fieldVal)
			if err != nil {
				return fmt.Errorf("error unmarshalling field %s: %w", fieldName, err)
			}
			a.AdditionalProperties[fieldName] = fieldVal
		}
	}
	return nil
}

// Override default JSON handling for ZoneRequest_Relationships_Source_Objects_Item to handle AdditionalProperties
func (a ZoneRequest_Relationships_Source_Objects_Item) MarshalJSON() ([]byte, error) {
	var err error
	object := make(map[string]json.RawMessage)

	if a.Display != nil {
		object["display"], err = json.Marshal(a.Display)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'display': %w", err)
		}
	}

	if a.Id != nil {
		object["id"], err = json.Marshal(a.Id)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'id': %w", err)
		}
	}

	if a.Url != nil {
		object["url"], err = json.Marshal(a.Url)
		if err != nil {
			return nil, fmt.Errorf("error marshaling 'url': %w", err)
		}
	}

	for fieldName, field := range a.AdditionalProperties {
		object[fieldName], err = json.Marshal(field)
		if err != nil {
			return nil, fmt.Errorf("error marshaling '%s': %w", fieldName, err)
		}
	}
	return json.Marshal(object)
}

// AsCableTypeChoices returns the union data inside the BulkWritableCableRequest_Type as a CableTypeChoices
func (t BulkWritableCableRequest_Type) AsCableTypeChoices() (CableTypeChoices, error) {
	var body CableTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCableTypeChoices overwrites any union data inside the BulkWritableCableRequest_Type as the provided CableTypeChoices
func (t *BulkWritableCableRequest_Type) FromCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCableTypeChoices performs a merge with any union data inside the BulkWritableCableRequest_Type, using the provided CableTypeChoices
func (t *BulkWritableCableRequest_Type) MergeCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the BulkWritableCableRequest_Type as a BlankEnum
func (t BulkWritableCableRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the BulkWritableCableRequest_Type as the provided BlankEnum
func (t *BulkWritableCableRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the BulkWritableCableRequest_Type, using the provided BlankEnum
func (t *BulkWritableCableRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t BulkWritableCableRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *BulkWritableCableRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsImpactEnum returns the union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a ImpactEnum
func (t BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsImpactEnum() (ImpactEnum, error) {
	var body ImpactEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromImpactEnum overwrites any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided ImpactEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeImpactEnum performs a merge with any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided ImpactEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a BlankEnum
func (t BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided BlankEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided BlankEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a NullEnum
func (t BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided NullEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided NullEnum
func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *BulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsStatusD95Enum returns the union data inside the BulkWritableCircuitMaintenanceRequest_Status as a StatusD95Enum
func (t BulkWritableCircuitMaintenanceRequest_Status) AsStatusD95Enum() (StatusD95Enum, error) {
	var body StatusD95Enum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromStatusD95Enum overwrites any union data inside the BulkWritableCircuitMaintenanceRequest_Status as the provided StatusD95Enum
func (t *BulkWritableCircuitMaintenanceRequest_Status) FromStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeStatusD95Enum performs a merge with any union data inside the BulkWritableCircuitMaintenanceRequest_Status, using the provided StatusD95Enum
func (t *BulkWritableCircuitMaintenanceRequest_Status) MergeStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the BulkWritableCircuitMaintenanceRequest_Status as a BlankEnum
func (t BulkWritableCircuitMaintenanceRequest_Status) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the BulkWritableCircuitMaintenanceRequest_Status as the provided BlankEnum
func (t *BulkWritableCircuitMaintenanceRequest_Status) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the BulkWritableCircuitMaintenanceRequest_Status, using the provided BlankEnum
func (t *BulkWritableCircuitMaintenanceRequest_Status) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the BulkWritableCircuitMaintenanceRequest_Status as a NullEnum
func (t BulkWritableCircuitMaintenanceRequest_Status) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the BulkWritableCircuitMaintenanceRequest_Status as the provided NullEnum
func (t *BulkWritableCircuitMaintenanceRequest_Status) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the BulkWritableCircuitMaintenanceRequest_Status, using the provided NullEnum
func (t *BulkWritableCircuitMaintenanceRequest_Status) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t BulkWritableCircuitMaintenanceRequest_Status) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *BulkWritableCircuitMaintenanceRequest_Status) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item as a ProvidedContentsEnum
func (t BulkWritableGitRepositoryRequest_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *BulkWritableGitRepositoryRequest_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *BulkWritableGitRepositoryRequest_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item as a BlankEnum
func (t BulkWritableGitRepositoryRequest_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item as the provided BlankEnum
func (t *BulkWritableGitRepositoryRequest_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the BulkWritableGitRepositoryRequest_ProvidedContents_Item, using the provided BlankEnum
func (t *BulkWritableGitRepositoryRequest_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t BulkWritableGitRepositoryRequest_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *BulkWritableGitRepositoryRequest_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRequiredOnEnum returns the union data inside the BulkWritableRelationshipRequest_RequiredOn as a RequiredOnEnum
func (t BulkWritableRelationshipRequest_RequiredOn) AsRequiredOnEnum() (RequiredOnEnum, error) {
	var body RequiredOnEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRequiredOnEnum overwrites any union data inside the BulkWritableRelationshipRequest_RequiredOn as the provided RequiredOnEnum
func (t *BulkWritableRelationshipRequest_RequiredOn) FromRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRequiredOnEnum performs a merge with any union data inside the BulkWritableRelationshipRequest_RequiredOn, using the provided RequiredOnEnum
func (t *BulkWritableRelationshipRequest_RequiredOn) MergeRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the BulkWritableRelationshipRequest_RequiredOn as a BlankEnum
func (t BulkWritableRelationshipRequest_RequiredOn) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the BulkWritableRelationshipRequest_RequiredOn as the provided BlankEnum
func (t *BulkWritableRelationshipRequest_RequiredOn) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the BulkWritableRelationshipRequest_RequiredOn, using the provided BlankEnum
func (t *BulkWritableRelationshipRequest_RequiredOn) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t BulkWritableRelationshipRequest_RequiredOn) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *BulkWritableRelationshipRequest_RequiredOn) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCableTypeChoices returns the union data inside the Cable_Type as a CableTypeChoices
func (t Cable_Type) AsCableTypeChoices() (CableTypeChoices, error) {
	var body CableTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCableTypeChoices overwrites any union data inside the Cable_Type as the provided CableTypeChoices
func (t *Cable_Type) FromCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCableTypeChoices performs a merge with any union data inside the Cable_Type, using the provided CableTypeChoices
func (t *Cable_Type) MergeCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the Cable_Type as a BlankEnum
func (t Cable_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the Cable_Type as the provided BlankEnum
func (t *Cable_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the Cable_Type, using the provided BlankEnum
func (t *Cable_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t Cable_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *Cable_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsStatusD95Enum returns the union data inside the CircuitMaintenance_Status as a StatusD95Enum
func (t CircuitMaintenance_Status) AsStatusD95Enum() (StatusD95Enum, error) {
	var body StatusD95Enum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromStatusD95Enum overwrites any union data inside the CircuitMaintenance_Status as the provided StatusD95Enum
func (t *CircuitMaintenance_Status) FromStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeStatusD95Enum performs a merge with any union data inside the CircuitMaintenance_Status, using the provided StatusD95Enum
func (t *CircuitMaintenance_Status) MergeStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the CircuitMaintenance_Status as a BlankEnum
func (t CircuitMaintenance_Status) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the CircuitMaintenance_Status as the provided BlankEnum
func (t *CircuitMaintenance_Status) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the CircuitMaintenance_Status, using the provided BlankEnum
func (t *CircuitMaintenance_Status) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the CircuitMaintenance_Status as a NullEnum
func (t CircuitMaintenance_Status) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the CircuitMaintenance_Status as the provided NullEnum
func (t *CircuitMaintenance_Status) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the CircuitMaintenance_Status, using the provided NullEnum
func (t *CircuitMaintenance_Status) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t CircuitMaintenance_Status) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CircuitMaintenance_Status) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsImpactEnum returns the union data inside the CircuitMaintenanceCircuitImpact_Impact as a ImpactEnum
func (t CircuitMaintenanceCircuitImpact_Impact) AsImpactEnum() (ImpactEnum, error) {
	var body ImpactEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromImpactEnum overwrites any union data inside the CircuitMaintenanceCircuitImpact_Impact as the provided ImpactEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) FromImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeImpactEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpact_Impact, using the provided ImpactEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) MergeImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the CircuitMaintenanceCircuitImpact_Impact as a BlankEnum
func (t CircuitMaintenanceCircuitImpact_Impact) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the CircuitMaintenanceCircuitImpact_Impact as the provided BlankEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpact_Impact, using the provided BlankEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the CircuitMaintenanceCircuitImpact_Impact as a NullEnum
func (t CircuitMaintenanceCircuitImpact_Impact) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the CircuitMaintenanceCircuitImpact_Impact as the provided NullEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpact_Impact, using the provided NullEnum
func (t *CircuitMaintenanceCircuitImpact_Impact) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t CircuitMaintenanceCircuitImpact_Impact) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CircuitMaintenanceCircuitImpact_Impact) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsImpactEnum returns the union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as a ImpactEnum
func (t CircuitMaintenanceCircuitImpactRequest_Impact) AsImpactEnum() (ImpactEnum, error) {
	var body ImpactEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromImpactEnum overwrites any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as the provided ImpactEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) FromImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeImpactEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact, using the provided ImpactEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) MergeImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as a BlankEnum
func (t CircuitMaintenanceCircuitImpactRequest_Impact) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as the provided BlankEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact, using the provided BlankEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as a NullEnum
func (t CircuitMaintenanceCircuitImpactRequest_Impact) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact as the provided NullEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the CircuitMaintenanceCircuitImpactRequest_Impact, using the provided NullEnum
func (t *CircuitMaintenanceCircuitImpactRequest_Impact) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t CircuitMaintenanceCircuitImpactRequest_Impact) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CircuitMaintenanceCircuitImpactRequest_Impact) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsStatusD95Enum returns the union data inside the CircuitMaintenanceRequest_Status as a StatusD95Enum
func (t CircuitMaintenanceRequest_Status) AsStatusD95Enum() (StatusD95Enum, error) {
	var body StatusD95Enum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromStatusD95Enum overwrites any union data inside the CircuitMaintenanceRequest_Status as the provided StatusD95Enum
func (t *CircuitMaintenanceRequest_Status) FromStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeStatusD95Enum performs a merge with any union data inside the CircuitMaintenanceRequest_Status, using the provided StatusD95Enum
func (t *CircuitMaintenanceRequest_Status) MergeStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the CircuitMaintenanceRequest_Status as a BlankEnum
func (t CircuitMaintenanceRequest_Status) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the CircuitMaintenanceRequest_Status as the provided BlankEnum
func (t *CircuitMaintenanceRequest_Status) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the CircuitMaintenanceRequest_Status, using the provided BlankEnum
func (t *CircuitMaintenanceRequest_Status) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the CircuitMaintenanceRequest_Status as a NullEnum
func (t CircuitMaintenanceRequest_Status) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the CircuitMaintenanceRequest_Status as the provided NullEnum
func (t *CircuitMaintenanceRequest_Status) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the CircuitMaintenanceRequest_Status, using the provided NullEnum
func (t *CircuitMaintenanceRequest_Status) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t CircuitMaintenanceRequest_Status) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *CircuitMaintenanceRequest_Status) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the GitRepository_ProvidedContents_Item as a ProvidedContentsEnum
func (t GitRepository_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the GitRepository_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *GitRepository_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the GitRepository_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *GitRepository_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the GitRepository_ProvidedContents_Item as a BlankEnum
func (t GitRepository_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the GitRepository_ProvidedContents_Item as the provided BlankEnum
func (t *GitRepository_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the GitRepository_ProvidedContents_Item, using the provided BlankEnum
func (t *GitRepository_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t GitRepository_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *GitRepository_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the GitRepositoryRequest_ProvidedContents_Item as a ProvidedContentsEnum
func (t GitRepositoryRequest_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the GitRepositoryRequest_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *GitRepositoryRequest_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the GitRepositoryRequest_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *GitRepositoryRequest_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the GitRepositoryRequest_ProvidedContents_Item as a BlankEnum
func (t GitRepositoryRequest_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the GitRepositoryRequest_ProvidedContents_Item as the provided BlankEnum
func (t *GitRepositoryRequest_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the GitRepositoryRequest_ProvidedContents_Item, using the provided BlankEnum
func (t *GitRepositoryRequest_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t GitRepositoryRequest_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *GitRepositoryRequest_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFailoverStrategyEnum returns the union data inside the NestedDeviceRedundancyGroup_FailoverStrategy as a FailoverStrategyEnum
func (t NestedDeviceRedundancyGroup_FailoverStrategy) AsFailoverStrategyEnum() (FailoverStrategyEnum, error) {
	var body FailoverStrategyEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFailoverStrategyEnum overwrites any union data inside the NestedDeviceRedundancyGroup_FailoverStrategy as the provided FailoverStrategyEnum
func (t *NestedDeviceRedundancyGroup_FailoverStrategy) FromFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFailoverStrategyEnum performs a merge with any union data inside the NestedDeviceRedundancyGroup_FailoverStrategy, using the provided FailoverStrategyEnum
func (t *NestedDeviceRedundancyGroup_FailoverStrategy) MergeFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the NestedDeviceRedundancyGroup_FailoverStrategy as a BlankEnum
func (t NestedDeviceRedundancyGroup_FailoverStrategy) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the NestedDeviceRedundancyGroup_FailoverStrategy as the provided BlankEnum
func (t *NestedDeviceRedundancyGroup_FailoverStrategy) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the NestedDeviceRedundancyGroup_FailoverStrategy, using the provided BlankEnum
func (t *NestedDeviceRedundancyGroup_FailoverStrategy) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t NestedDeviceRedundancyGroup_FailoverStrategy) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *NestedDeviceRedundancyGroup_FailoverStrategy) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFailoverStrategyEnum returns the union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy as a FailoverStrategyEnum
func (t NestedDeviceRedundancyGroupRequest_FailoverStrategy) AsFailoverStrategyEnum() (FailoverStrategyEnum, error) {
	var body FailoverStrategyEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFailoverStrategyEnum overwrites any union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy as the provided FailoverStrategyEnum
func (t *NestedDeviceRedundancyGroupRequest_FailoverStrategy) FromFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFailoverStrategyEnum performs a merge with any union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy, using the provided FailoverStrategyEnum
func (t *NestedDeviceRedundancyGroupRequest_FailoverStrategy) MergeFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy as a BlankEnum
func (t NestedDeviceRedundancyGroupRequest_FailoverStrategy) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy as the provided BlankEnum
func (t *NestedDeviceRedundancyGroupRequest_FailoverStrategy) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the NestedDeviceRedundancyGroupRequest_FailoverStrategy, using the provided BlankEnum
func (t *NestedDeviceRedundancyGroupRequest_FailoverStrategy) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t NestedDeviceRedundancyGroupRequest_FailoverStrategy) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *NestedDeviceRedundancyGroupRequest_FailoverStrategy) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCableTypeChoices returns the union data inside the PatchedBulkWritableCableRequest_Type as a CableTypeChoices
func (t PatchedBulkWritableCableRequest_Type) AsCableTypeChoices() (CableTypeChoices, error) {
	var body CableTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCableTypeChoices overwrites any union data inside the PatchedBulkWritableCableRequest_Type as the provided CableTypeChoices
func (t *PatchedBulkWritableCableRequest_Type) FromCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCableTypeChoices performs a merge with any union data inside the PatchedBulkWritableCableRequest_Type, using the provided CableTypeChoices
func (t *PatchedBulkWritableCableRequest_Type) MergeCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedBulkWritableCableRequest_Type as a BlankEnum
func (t PatchedBulkWritableCableRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedBulkWritableCableRequest_Type as the provided BlankEnum
func (t *PatchedBulkWritableCableRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedBulkWritableCableRequest_Type, using the provided BlankEnum
func (t *PatchedBulkWritableCableRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedBulkWritableCableRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedBulkWritableCableRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsImpactEnum returns the union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a ImpactEnum
func (t PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsImpactEnum() (ImpactEnum, error) {
	var body ImpactEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromImpactEnum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided ImpactEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeImpactEnum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided ImpactEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a BlankEnum
func (t PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided BlankEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided BlankEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as a NullEnum
func (t PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact as the provided NullEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact, using the provided NullEnum
func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedBulkWritableCircuitMaintenanceCircuitImpactRequest_Impact) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsStatusD95Enum returns the union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as a StatusD95Enum
func (t PatchedBulkWritableCircuitMaintenanceRequest_Status) AsStatusD95Enum() (StatusD95Enum, error) {
	var body StatusD95Enum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromStatusD95Enum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as the provided StatusD95Enum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) FromStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeStatusD95Enum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status, using the provided StatusD95Enum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) MergeStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as a BlankEnum
func (t PatchedBulkWritableCircuitMaintenanceRequest_Status) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as the provided BlankEnum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status, using the provided BlankEnum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as a NullEnum
func (t PatchedBulkWritableCircuitMaintenanceRequest_Status) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status as the provided NullEnum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the PatchedBulkWritableCircuitMaintenanceRequest_Status, using the provided NullEnum
func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedBulkWritableCircuitMaintenanceRequest_Status) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedBulkWritableCircuitMaintenanceRequest_Status) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item as a ProvidedContentsEnum
func (t PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item as a BlankEnum
func (t PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item as the provided BlankEnum
func (t *PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item, using the provided BlankEnum
func (t *PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedBulkWritableGitRepositoryRequest_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRequiredOnEnum returns the union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn as a RequiredOnEnum
func (t PatchedBulkWritableRelationshipRequest_RequiredOn) AsRequiredOnEnum() (RequiredOnEnum, error) {
	var body RequiredOnEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRequiredOnEnum overwrites any union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn as the provided RequiredOnEnum
func (t *PatchedBulkWritableRelationshipRequest_RequiredOn) FromRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRequiredOnEnum performs a merge with any union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn, using the provided RequiredOnEnum
func (t *PatchedBulkWritableRelationshipRequest_RequiredOn) MergeRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn as a BlankEnum
func (t PatchedBulkWritableRelationshipRequest_RequiredOn) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn as the provided BlankEnum
func (t *PatchedBulkWritableRelationshipRequest_RequiredOn) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedBulkWritableRelationshipRequest_RequiredOn, using the provided BlankEnum
func (t *PatchedBulkWritableRelationshipRequest_RequiredOn) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedBulkWritableRelationshipRequest_RequiredOn) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedBulkWritableRelationshipRequest_RequiredOn) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsImpactEnum returns the union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as a ImpactEnum
func (t PatchedCircuitMaintenanceCircuitImpactRequest_Impact) AsImpactEnum() (ImpactEnum, error) {
	var body ImpactEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromImpactEnum overwrites any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as the provided ImpactEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) FromImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeImpactEnum performs a merge with any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact, using the provided ImpactEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) MergeImpactEnum(v ImpactEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as a BlankEnum
func (t PatchedCircuitMaintenanceCircuitImpactRequest_Impact) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as the provided BlankEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact, using the provided BlankEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as a NullEnum
func (t PatchedCircuitMaintenanceCircuitImpactRequest_Impact) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact as the provided NullEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the PatchedCircuitMaintenanceCircuitImpactRequest_Impact, using the provided NullEnum
func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedCircuitMaintenanceCircuitImpactRequest_Impact) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedCircuitMaintenanceCircuitImpactRequest_Impact) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsStatusD95Enum returns the union data inside the PatchedCircuitMaintenanceRequest_Status as a StatusD95Enum
func (t PatchedCircuitMaintenanceRequest_Status) AsStatusD95Enum() (StatusD95Enum, error) {
	var body StatusD95Enum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromStatusD95Enum overwrites any union data inside the PatchedCircuitMaintenanceRequest_Status as the provided StatusD95Enum
func (t *PatchedCircuitMaintenanceRequest_Status) FromStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeStatusD95Enum performs a merge with any union data inside the PatchedCircuitMaintenanceRequest_Status, using the provided StatusD95Enum
func (t *PatchedCircuitMaintenanceRequest_Status) MergeStatusD95Enum(v StatusD95Enum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedCircuitMaintenanceRequest_Status as a BlankEnum
func (t PatchedCircuitMaintenanceRequest_Status) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedCircuitMaintenanceRequest_Status as the provided BlankEnum
func (t *PatchedCircuitMaintenanceRequest_Status) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedCircuitMaintenanceRequest_Status, using the provided BlankEnum
func (t *PatchedCircuitMaintenanceRequest_Status) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsNullEnum returns the union data inside the PatchedCircuitMaintenanceRequest_Status as a NullEnum
func (t PatchedCircuitMaintenanceRequest_Status) AsNullEnum() (NullEnum, error) {
	var body NullEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromNullEnum overwrites any union data inside the PatchedCircuitMaintenanceRequest_Status as the provided NullEnum
func (t *PatchedCircuitMaintenanceRequest_Status) FromNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeNullEnum performs a merge with any union data inside the PatchedCircuitMaintenanceRequest_Status, using the provided NullEnum
func (t *PatchedCircuitMaintenanceRequest_Status) MergeNullEnum(v NullEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedCircuitMaintenanceRequest_Status) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedCircuitMaintenanceRequest_Status) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRequiredOnEnum returns the union data inside the PatchedRelationshipRequest_RequiredOn as a RequiredOnEnum
func (t PatchedRelationshipRequest_RequiredOn) AsRequiredOnEnum() (RequiredOnEnum, error) {
	var body RequiredOnEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRequiredOnEnum overwrites any union data inside the PatchedRelationshipRequest_RequiredOn as the provided RequiredOnEnum
func (t *PatchedRelationshipRequest_RequiredOn) FromRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRequiredOnEnum performs a merge with any union data inside the PatchedRelationshipRequest_RequiredOn, using the provided RequiredOnEnum
func (t *PatchedRelationshipRequest_RequiredOn) MergeRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedRelationshipRequest_RequiredOn as a BlankEnum
func (t PatchedRelationshipRequest_RequiredOn) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedRelationshipRequest_RequiredOn as the provided BlankEnum
func (t *PatchedRelationshipRequest_RequiredOn) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedRelationshipRequest_RequiredOn, using the provided BlankEnum
func (t *PatchedRelationshipRequest_RequiredOn) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedRelationshipRequest_RequiredOn) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedRelationshipRequest_RequiredOn) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsLengthUnitEnum returns the union data inside the PatchedWritableCableRequest_LengthUnit as a LengthUnitEnum
func (t PatchedWritableCableRequest_LengthUnit) AsLengthUnitEnum() (LengthUnitEnum, error) {
	var body LengthUnitEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromLengthUnitEnum overwrites any union data inside the PatchedWritableCableRequest_LengthUnit as the provided LengthUnitEnum
func (t *PatchedWritableCableRequest_LengthUnit) FromLengthUnitEnum(v LengthUnitEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeLengthUnitEnum performs a merge with any union data inside the PatchedWritableCableRequest_LengthUnit, using the provided LengthUnitEnum
func (t *PatchedWritableCableRequest_LengthUnit) MergeLengthUnitEnum(v LengthUnitEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableCableRequest_LengthUnit as a BlankEnum
func (t PatchedWritableCableRequest_LengthUnit) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableCableRequest_LengthUnit as the provided BlankEnum
func (t *PatchedWritableCableRequest_LengthUnit) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableCableRequest_LengthUnit, using the provided BlankEnum
func (t *PatchedWritableCableRequest_LengthUnit) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableCableRequest_LengthUnit) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableCableRequest_LengthUnit) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCableTypeChoices returns the union data inside the PatchedWritableCableRequest_Type as a CableTypeChoices
func (t PatchedWritableCableRequest_Type) AsCableTypeChoices() (CableTypeChoices, error) {
	var body CableTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCableTypeChoices overwrites any union data inside the PatchedWritableCableRequest_Type as the provided CableTypeChoices
func (t *PatchedWritableCableRequest_Type) FromCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCableTypeChoices performs a merge with any union data inside the PatchedWritableCableRequest_Type, using the provided CableTypeChoices
func (t *PatchedWritableCableRequest_Type) MergeCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableCableRequest_Type as a BlankEnum
func (t PatchedWritableCableRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableCableRequest_Type as the provided BlankEnum
func (t *PatchedWritableCableRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableCableRequest_Type, using the provided BlankEnum
func (t *PatchedWritableCableRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableCableRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableCableRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the PatchedWritableConsolePortRequest_Type as a ConsolePortTypeChoices
func (t PatchedWritableConsolePortRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the PatchedWritableConsolePortRequest_Type as the provided ConsolePortTypeChoices
func (t *PatchedWritableConsolePortRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the PatchedWritableConsolePortRequest_Type, using the provided ConsolePortTypeChoices
func (t *PatchedWritableConsolePortRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableConsolePortRequest_Type as a BlankEnum
func (t PatchedWritableConsolePortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableConsolePortRequest_Type as the provided BlankEnum
func (t *PatchedWritableConsolePortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableConsolePortRequest_Type, using the provided BlankEnum
func (t *PatchedWritableConsolePortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableConsolePortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableConsolePortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the PatchedWritableConsolePortTemplateRequest_Type as a ConsolePortTypeChoices
func (t PatchedWritableConsolePortTemplateRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the PatchedWritableConsolePortTemplateRequest_Type as the provided ConsolePortTypeChoices
func (t *PatchedWritableConsolePortTemplateRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the PatchedWritableConsolePortTemplateRequest_Type, using the provided ConsolePortTypeChoices
func (t *PatchedWritableConsolePortTemplateRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableConsolePortTemplateRequest_Type as a BlankEnum
func (t PatchedWritableConsolePortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableConsolePortTemplateRequest_Type as the provided BlankEnum
func (t *PatchedWritableConsolePortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableConsolePortTemplateRequest_Type, using the provided BlankEnum
func (t *PatchedWritableConsolePortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableConsolePortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableConsolePortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the PatchedWritableConsoleServerPortRequest_Type as a ConsolePortTypeChoices
func (t PatchedWritableConsoleServerPortRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the PatchedWritableConsoleServerPortRequest_Type as the provided ConsolePortTypeChoices
func (t *PatchedWritableConsoleServerPortRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the PatchedWritableConsoleServerPortRequest_Type, using the provided ConsolePortTypeChoices
func (t *PatchedWritableConsoleServerPortRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableConsoleServerPortRequest_Type as a BlankEnum
func (t PatchedWritableConsoleServerPortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableConsoleServerPortRequest_Type as the provided BlankEnum
func (t *PatchedWritableConsoleServerPortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableConsoleServerPortRequest_Type, using the provided BlankEnum
func (t *PatchedWritableConsoleServerPortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableConsoleServerPortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableConsoleServerPortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type as a ConsolePortTypeChoices
func (t PatchedWritableConsoleServerPortTemplateRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type as the provided ConsolePortTypeChoices
func (t *PatchedWritableConsoleServerPortTemplateRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type, using the provided ConsolePortTypeChoices
func (t *PatchedWritableConsoleServerPortTemplateRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type as a BlankEnum
func (t PatchedWritableConsoleServerPortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type as the provided BlankEnum
func (t *PatchedWritableConsoleServerPortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableConsoleServerPortTemplateRequest_Type, using the provided BlankEnum
func (t *PatchedWritableConsoleServerPortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableConsoleServerPortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableConsoleServerPortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFailoverStrategyEnum returns the union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy as a FailoverStrategyEnum
func (t PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) AsFailoverStrategyEnum() (FailoverStrategyEnum, error) {
	var body FailoverStrategyEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFailoverStrategyEnum overwrites any union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy as the provided FailoverStrategyEnum
func (t *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) FromFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFailoverStrategyEnum performs a merge with any union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy, using the provided FailoverStrategyEnum
func (t *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) MergeFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy as a BlankEnum
func (t PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy as the provided BlankEnum
func (t *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy, using the provided BlankEnum
func (t *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableDeviceRedundancyGroupRequest_FailoverStrategy) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsSubdeviceRoleEnum returns the union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole as a SubdeviceRoleEnum
func (t PatchedWritableDeviceTypeRequest_SubdeviceRole) AsSubdeviceRoleEnum() (SubdeviceRoleEnum, error) {
	var body SubdeviceRoleEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromSubdeviceRoleEnum overwrites any union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole as the provided SubdeviceRoleEnum
func (t *PatchedWritableDeviceTypeRequest_SubdeviceRole) FromSubdeviceRoleEnum(v SubdeviceRoleEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeSubdeviceRoleEnum performs a merge with any union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole, using the provided SubdeviceRoleEnum
func (t *PatchedWritableDeviceTypeRequest_SubdeviceRole) MergeSubdeviceRoleEnum(v SubdeviceRoleEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole as a BlankEnum
func (t PatchedWritableDeviceTypeRequest_SubdeviceRole) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole as the provided BlankEnum
func (t *PatchedWritableDeviceTypeRequest_SubdeviceRole) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableDeviceTypeRequest_SubdeviceRole, using the provided BlankEnum
func (t *PatchedWritableDeviceTypeRequest_SubdeviceRole) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableDeviceTypeRequest_SubdeviceRole) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableDeviceTypeRequest_SubdeviceRole) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFaceEnum returns the union data inside the PatchedWritableDeviceWithConfigContextRequest_Face as a FaceEnum
func (t PatchedWritableDeviceWithConfigContextRequest_Face) AsFaceEnum() (FaceEnum, error) {
	var body FaceEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFaceEnum overwrites any union data inside the PatchedWritableDeviceWithConfigContextRequest_Face as the provided FaceEnum
func (t *PatchedWritableDeviceWithConfigContextRequest_Face) FromFaceEnum(v FaceEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFaceEnum performs a merge with any union data inside the PatchedWritableDeviceWithConfigContextRequest_Face, using the provided FaceEnum
func (t *PatchedWritableDeviceWithConfigContextRequest_Face) MergeFaceEnum(v FaceEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableDeviceWithConfigContextRequest_Face as a BlankEnum
func (t PatchedWritableDeviceWithConfigContextRequest_Face) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableDeviceWithConfigContextRequest_Face as the provided BlankEnum
func (t *PatchedWritableDeviceWithConfigContextRequest_Face) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableDeviceWithConfigContextRequest_Face, using the provided BlankEnum
func (t *PatchedWritableDeviceWithConfigContextRequest_Face) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableDeviceWithConfigContextRequest_Face) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableDeviceWithConfigContextRequest_Face) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item as a ProvidedContentsEnum
func (t PatchedWritableGitRepositoryRequest_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *PatchedWritableGitRepositoryRequest_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *PatchedWritableGitRepositoryRequest_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item as a BlankEnum
func (t PatchedWritableGitRepositoryRequest_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item as the provided BlankEnum
func (t *PatchedWritableGitRepositoryRequest_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableGitRepositoryRequest_ProvidedContents_Item, using the provided BlankEnum
func (t *PatchedWritableGitRepositoryRequest_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableGitRepositoryRequest_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableGitRepositoryRequest_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRoleEnum returns the union data inside the PatchedWritableIPAddressRequest_Role as a RoleEnum
func (t PatchedWritableIPAddressRequest_Role) AsRoleEnum() (RoleEnum, error) {
	var body RoleEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRoleEnum overwrites any union data inside the PatchedWritableIPAddressRequest_Role as the provided RoleEnum
func (t *PatchedWritableIPAddressRequest_Role) FromRoleEnum(v RoleEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRoleEnum performs a merge with any union data inside the PatchedWritableIPAddressRequest_Role, using the provided RoleEnum
func (t *PatchedWritableIPAddressRequest_Role) MergeRoleEnum(v RoleEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableIPAddressRequest_Role as a BlankEnum
func (t PatchedWritableIPAddressRequest_Role) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableIPAddressRequest_Role as the provided BlankEnum
func (t *PatchedWritableIPAddressRequest_Role) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableIPAddressRequest_Role, using the provided BlankEnum
func (t *PatchedWritableIPAddressRequest_Role) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableIPAddressRequest_Role) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableIPAddressRequest_Role) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsModeEnum returns the union data inside the PatchedWritableInterfaceRequest_Mode as a ModeEnum
func (t PatchedWritableInterfaceRequest_Mode) AsModeEnum() (ModeEnum, error) {
	var body ModeEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromModeEnum overwrites any union data inside the PatchedWritableInterfaceRequest_Mode as the provided ModeEnum
func (t *PatchedWritableInterfaceRequest_Mode) FromModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeModeEnum performs a merge with any union data inside the PatchedWritableInterfaceRequest_Mode, using the provided ModeEnum
func (t *PatchedWritableInterfaceRequest_Mode) MergeModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableInterfaceRequest_Mode as a BlankEnum
func (t PatchedWritableInterfaceRequest_Mode) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableInterfaceRequest_Mode as the provided BlankEnum
func (t *PatchedWritableInterfaceRequest_Mode) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableInterfaceRequest_Mode, using the provided BlankEnum
func (t *PatchedWritableInterfaceRequest_Mode) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableInterfaceRequest_Mode) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableInterfaceRequest_Mode) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFeedLegEnum returns the union data inside the PatchedWritablePowerOutletRequest_FeedLeg as a FeedLegEnum
func (t PatchedWritablePowerOutletRequest_FeedLeg) AsFeedLegEnum() (FeedLegEnum, error) {
	var body FeedLegEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFeedLegEnum overwrites any union data inside the PatchedWritablePowerOutletRequest_FeedLeg as the provided FeedLegEnum
func (t *PatchedWritablePowerOutletRequest_FeedLeg) FromFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFeedLegEnum performs a merge with any union data inside the PatchedWritablePowerOutletRequest_FeedLeg, using the provided FeedLegEnum
func (t *PatchedWritablePowerOutletRequest_FeedLeg) MergeFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerOutletRequest_FeedLeg as a BlankEnum
func (t PatchedWritablePowerOutletRequest_FeedLeg) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerOutletRequest_FeedLeg as the provided BlankEnum
func (t *PatchedWritablePowerOutletRequest_FeedLeg) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerOutletRequest_FeedLeg, using the provided BlankEnum
func (t *PatchedWritablePowerOutletRequest_FeedLeg) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerOutletRequest_FeedLeg) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerOutletRequest_FeedLeg) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerOutletTypeChoices returns the union data inside the PatchedWritablePowerOutletRequest_Type as a PowerOutletTypeChoices
func (t PatchedWritablePowerOutletRequest_Type) AsPowerOutletTypeChoices() (PowerOutletTypeChoices, error) {
	var body PowerOutletTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerOutletTypeChoices overwrites any union data inside the PatchedWritablePowerOutletRequest_Type as the provided PowerOutletTypeChoices
func (t *PatchedWritablePowerOutletRequest_Type) FromPowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerOutletTypeChoices performs a merge with any union data inside the PatchedWritablePowerOutletRequest_Type, using the provided PowerOutletTypeChoices
func (t *PatchedWritablePowerOutletRequest_Type) MergePowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerOutletRequest_Type as a BlankEnum
func (t PatchedWritablePowerOutletRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerOutletRequest_Type as the provided BlankEnum
func (t *PatchedWritablePowerOutletRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerOutletRequest_Type, using the provided BlankEnum
func (t *PatchedWritablePowerOutletRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerOutletRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerOutletRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFeedLegEnum returns the union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg as a FeedLegEnum
func (t PatchedWritablePowerOutletTemplateRequest_FeedLeg) AsFeedLegEnum() (FeedLegEnum, error) {
	var body FeedLegEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFeedLegEnum overwrites any union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg as the provided FeedLegEnum
func (t *PatchedWritablePowerOutletTemplateRequest_FeedLeg) FromFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFeedLegEnum performs a merge with any union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg, using the provided FeedLegEnum
func (t *PatchedWritablePowerOutletTemplateRequest_FeedLeg) MergeFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg as a BlankEnum
func (t PatchedWritablePowerOutletTemplateRequest_FeedLeg) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg as the provided BlankEnum
func (t *PatchedWritablePowerOutletTemplateRequest_FeedLeg) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerOutletTemplateRequest_FeedLeg, using the provided BlankEnum
func (t *PatchedWritablePowerOutletTemplateRequest_FeedLeg) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerOutletTemplateRequest_FeedLeg) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerOutletTemplateRequest_FeedLeg) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerOutletTypeChoices returns the union data inside the PatchedWritablePowerOutletTemplateRequest_Type as a PowerOutletTypeChoices
func (t PatchedWritablePowerOutletTemplateRequest_Type) AsPowerOutletTypeChoices() (PowerOutletTypeChoices, error) {
	var body PowerOutletTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerOutletTypeChoices overwrites any union data inside the PatchedWritablePowerOutletTemplateRequest_Type as the provided PowerOutletTypeChoices
func (t *PatchedWritablePowerOutletTemplateRequest_Type) FromPowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerOutletTypeChoices performs a merge with any union data inside the PatchedWritablePowerOutletTemplateRequest_Type, using the provided PowerOutletTypeChoices
func (t *PatchedWritablePowerOutletTemplateRequest_Type) MergePowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerOutletTemplateRequest_Type as a BlankEnum
func (t PatchedWritablePowerOutletTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerOutletTemplateRequest_Type as the provided BlankEnum
func (t *PatchedWritablePowerOutletTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerOutletTemplateRequest_Type, using the provided BlankEnum
func (t *PatchedWritablePowerOutletTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerOutletTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerOutletTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerPortTypeChoices returns the union data inside the PatchedWritablePowerPortRequest_Type as a PowerPortTypeChoices
func (t PatchedWritablePowerPortRequest_Type) AsPowerPortTypeChoices() (PowerPortTypeChoices, error) {
	var body PowerPortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerPortTypeChoices overwrites any union data inside the PatchedWritablePowerPortRequest_Type as the provided PowerPortTypeChoices
func (t *PatchedWritablePowerPortRequest_Type) FromPowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerPortTypeChoices performs a merge with any union data inside the PatchedWritablePowerPortRequest_Type, using the provided PowerPortTypeChoices
func (t *PatchedWritablePowerPortRequest_Type) MergePowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerPortRequest_Type as a BlankEnum
func (t PatchedWritablePowerPortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerPortRequest_Type as the provided BlankEnum
func (t *PatchedWritablePowerPortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerPortRequest_Type, using the provided BlankEnum
func (t *PatchedWritablePowerPortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerPortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerPortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerPortTypeChoices returns the union data inside the PatchedWritablePowerPortTemplateRequest_Type as a PowerPortTypeChoices
func (t PatchedWritablePowerPortTemplateRequest_Type) AsPowerPortTypeChoices() (PowerPortTypeChoices, error) {
	var body PowerPortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerPortTypeChoices overwrites any union data inside the PatchedWritablePowerPortTemplateRequest_Type as the provided PowerPortTypeChoices
func (t *PatchedWritablePowerPortTemplateRequest_Type) FromPowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerPortTypeChoices performs a merge with any union data inside the PatchedWritablePowerPortTemplateRequest_Type, using the provided PowerPortTypeChoices
func (t *PatchedWritablePowerPortTemplateRequest_Type) MergePowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritablePowerPortTemplateRequest_Type as a BlankEnum
func (t PatchedWritablePowerPortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritablePowerPortTemplateRequest_Type as the provided BlankEnum
func (t *PatchedWritablePowerPortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritablePowerPortTemplateRequest_Type, using the provided BlankEnum
func (t *PatchedWritablePowerPortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritablePowerPortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritablePowerPortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsOuterUnitEnum returns the union data inside the PatchedWritableRackRequest_OuterUnit as a OuterUnitEnum
func (t PatchedWritableRackRequest_OuterUnit) AsOuterUnitEnum() (OuterUnitEnum, error) {
	var body OuterUnitEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromOuterUnitEnum overwrites any union data inside the PatchedWritableRackRequest_OuterUnit as the provided OuterUnitEnum
func (t *PatchedWritableRackRequest_OuterUnit) FromOuterUnitEnum(v OuterUnitEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeOuterUnitEnum performs a merge with any union data inside the PatchedWritableRackRequest_OuterUnit, using the provided OuterUnitEnum
func (t *PatchedWritableRackRequest_OuterUnit) MergeOuterUnitEnum(v OuterUnitEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableRackRequest_OuterUnit as a BlankEnum
func (t PatchedWritableRackRequest_OuterUnit) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableRackRequest_OuterUnit as the provided BlankEnum
func (t *PatchedWritableRackRequest_OuterUnit) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableRackRequest_OuterUnit, using the provided BlankEnum
func (t *PatchedWritableRackRequest_OuterUnit) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableRackRequest_OuterUnit) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableRackRequest_OuterUnit) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRackTypeChoices returns the union data inside the PatchedWritableRackRequest_Type as a RackTypeChoices
func (t PatchedWritableRackRequest_Type) AsRackTypeChoices() (RackTypeChoices, error) {
	var body RackTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRackTypeChoices overwrites any union data inside the PatchedWritableRackRequest_Type as the provided RackTypeChoices
func (t *PatchedWritableRackRequest_Type) FromRackTypeChoices(v RackTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRackTypeChoices performs a merge with any union data inside the PatchedWritableRackRequest_Type, using the provided RackTypeChoices
func (t *PatchedWritableRackRequest_Type) MergeRackTypeChoices(v RackTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableRackRequest_Type as a BlankEnum
func (t PatchedWritableRackRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableRackRequest_Type as the provided BlankEnum
func (t *PatchedWritableRackRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableRackRequest_Type, using the provided BlankEnum
func (t *PatchedWritableRackRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableRackRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableRackRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsModeEnum returns the union data inside the PatchedWritableVMInterfaceRequest_Mode as a ModeEnum
func (t PatchedWritableVMInterfaceRequest_Mode) AsModeEnum() (ModeEnum, error) {
	var body ModeEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromModeEnum overwrites any union data inside the PatchedWritableVMInterfaceRequest_Mode as the provided ModeEnum
func (t *PatchedWritableVMInterfaceRequest_Mode) FromModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeModeEnum performs a merge with any union data inside the PatchedWritableVMInterfaceRequest_Mode, using the provided ModeEnum
func (t *PatchedWritableVMInterfaceRequest_Mode) MergeModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the PatchedWritableVMInterfaceRequest_Mode as a BlankEnum
func (t PatchedWritableVMInterfaceRequest_Mode) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the PatchedWritableVMInterfaceRequest_Mode as the provided BlankEnum
func (t *PatchedWritableVMInterfaceRequest_Mode) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the PatchedWritableVMInterfaceRequest_Mode, using the provided BlankEnum
func (t *PatchedWritableVMInterfaceRequest_Mode) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t PatchedWritableVMInterfaceRequest_Mode) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *PatchedWritableVMInterfaceRequest_Mode) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRequiredOnEnum returns the union data inside the Relationship_RequiredOn as a RequiredOnEnum
func (t Relationship_RequiredOn) AsRequiredOnEnum() (RequiredOnEnum, error) {
	var body RequiredOnEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRequiredOnEnum overwrites any union data inside the Relationship_RequiredOn as the provided RequiredOnEnum
func (t *Relationship_RequiredOn) FromRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRequiredOnEnum performs a merge with any union data inside the Relationship_RequiredOn, using the provided RequiredOnEnum
func (t *Relationship_RequiredOn) MergeRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the Relationship_RequiredOn as a BlankEnum
func (t Relationship_RequiredOn) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the Relationship_RequiredOn as the provided BlankEnum
func (t *Relationship_RequiredOn) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the Relationship_RequiredOn, using the provided BlankEnum
func (t *Relationship_RequiredOn) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t Relationship_RequiredOn) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *Relationship_RequiredOn) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRequiredOnEnum returns the union data inside the RelationshipRequest_RequiredOn as a RequiredOnEnum
func (t RelationshipRequest_RequiredOn) AsRequiredOnEnum() (RequiredOnEnum, error) {
	var body RequiredOnEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRequiredOnEnum overwrites any union data inside the RelationshipRequest_RequiredOn as the provided RequiredOnEnum
func (t *RelationshipRequest_RequiredOn) FromRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRequiredOnEnum performs a merge with any union data inside the RelationshipRequest_RequiredOn, using the provided RequiredOnEnum
func (t *RelationshipRequest_RequiredOn) MergeRequiredOnEnum(v RequiredOnEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the RelationshipRequest_RequiredOn as a BlankEnum
func (t RelationshipRequest_RequiredOn) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the RelationshipRequest_RequiredOn as the provided BlankEnum
func (t *RelationshipRequest_RequiredOn) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the RelationshipRequest_RequiredOn, using the provided BlankEnum
func (t *RelationshipRequest_RequiredOn) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t RelationshipRequest_RequiredOn) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *RelationshipRequest_RequiredOn) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsLengthUnitEnum returns the union data inside the WritableCableRequest_LengthUnit as a LengthUnitEnum
func (t WritableCableRequest_LengthUnit) AsLengthUnitEnum() (LengthUnitEnum, error) {
	var body LengthUnitEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromLengthUnitEnum overwrites any union data inside the WritableCableRequest_LengthUnit as the provided LengthUnitEnum
func (t *WritableCableRequest_LengthUnit) FromLengthUnitEnum(v LengthUnitEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeLengthUnitEnum performs a merge with any union data inside the WritableCableRequest_LengthUnit, using the provided LengthUnitEnum
func (t *WritableCableRequest_LengthUnit) MergeLengthUnitEnum(v LengthUnitEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableCableRequest_LengthUnit as a BlankEnum
func (t WritableCableRequest_LengthUnit) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableCableRequest_LengthUnit as the provided BlankEnum
func (t *WritableCableRequest_LengthUnit) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableCableRequest_LengthUnit, using the provided BlankEnum
func (t *WritableCableRequest_LengthUnit) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableCableRequest_LengthUnit) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableCableRequest_LengthUnit) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsCableTypeChoices returns the union data inside the WritableCableRequest_Type as a CableTypeChoices
func (t WritableCableRequest_Type) AsCableTypeChoices() (CableTypeChoices, error) {
	var body CableTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromCableTypeChoices overwrites any union data inside the WritableCableRequest_Type as the provided CableTypeChoices
func (t *WritableCableRequest_Type) FromCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeCableTypeChoices performs a merge with any union data inside the WritableCableRequest_Type, using the provided CableTypeChoices
func (t *WritableCableRequest_Type) MergeCableTypeChoices(v CableTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableCableRequest_Type as a BlankEnum
func (t WritableCableRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableCableRequest_Type as the provided BlankEnum
func (t *WritableCableRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableCableRequest_Type, using the provided BlankEnum
func (t *WritableCableRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableCableRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableCableRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the WritableConsolePortRequest_Type as a ConsolePortTypeChoices
func (t WritableConsolePortRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the WritableConsolePortRequest_Type as the provided ConsolePortTypeChoices
func (t *WritableConsolePortRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the WritableConsolePortRequest_Type, using the provided ConsolePortTypeChoices
func (t *WritableConsolePortRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableConsolePortRequest_Type as a BlankEnum
func (t WritableConsolePortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableConsolePortRequest_Type as the provided BlankEnum
func (t *WritableConsolePortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableConsolePortRequest_Type, using the provided BlankEnum
func (t *WritableConsolePortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableConsolePortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableConsolePortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the WritableConsolePortTemplateRequest_Type as a ConsolePortTypeChoices
func (t WritableConsolePortTemplateRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the WritableConsolePortTemplateRequest_Type as the provided ConsolePortTypeChoices
func (t *WritableConsolePortTemplateRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the WritableConsolePortTemplateRequest_Type, using the provided ConsolePortTypeChoices
func (t *WritableConsolePortTemplateRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableConsolePortTemplateRequest_Type as a BlankEnum
func (t WritableConsolePortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableConsolePortTemplateRequest_Type as the provided BlankEnum
func (t *WritableConsolePortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableConsolePortTemplateRequest_Type, using the provided BlankEnum
func (t *WritableConsolePortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableConsolePortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableConsolePortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the WritableConsoleServerPortRequest_Type as a ConsolePortTypeChoices
func (t WritableConsoleServerPortRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the WritableConsoleServerPortRequest_Type as the provided ConsolePortTypeChoices
func (t *WritableConsoleServerPortRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the WritableConsoleServerPortRequest_Type, using the provided ConsolePortTypeChoices
func (t *WritableConsoleServerPortRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableConsoleServerPortRequest_Type as a BlankEnum
func (t WritableConsoleServerPortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableConsoleServerPortRequest_Type as the provided BlankEnum
func (t *WritableConsoleServerPortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableConsoleServerPortRequest_Type, using the provided BlankEnum
func (t *WritableConsoleServerPortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableConsoleServerPortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableConsoleServerPortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsConsolePortTypeChoices returns the union data inside the WritableConsoleServerPortTemplateRequest_Type as a ConsolePortTypeChoices
func (t WritableConsoleServerPortTemplateRequest_Type) AsConsolePortTypeChoices() (ConsolePortTypeChoices, error) {
	var body ConsolePortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromConsolePortTypeChoices overwrites any union data inside the WritableConsoleServerPortTemplateRequest_Type as the provided ConsolePortTypeChoices
func (t *WritableConsoleServerPortTemplateRequest_Type) FromConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeConsolePortTypeChoices performs a merge with any union data inside the WritableConsoleServerPortTemplateRequest_Type, using the provided ConsolePortTypeChoices
func (t *WritableConsoleServerPortTemplateRequest_Type) MergeConsolePortTypeChoices(v ConsolePortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableConsoleServerPortTemplateRequest_Type as a BlankEnum
func (t WritableConsoleServerPortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableConsoleServerPortTemplateRequest_Type as the provided BlankEnum
func (t *WritableConsoleServerPortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableConsoleServerPortTemplateRequest_Type, using the provided BlankEnum
func (t *WritableConsoleServerPortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableConsoleServerPortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableConsoleServerPortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFailoverStrategyEnum returns the union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy as a FailoverStrategyEnum
func (t WritableDeviceRedundancyGroupRequest_FailoverStrategy) AsFailoverStrategyEnum() (FailoverStrategyEnum, error) {
	var body FailoverStrategyEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFailoverStrategyEnum overwrites any union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy as the provided FailoverStrategyEnum
func (t *WritableDeviceRedundancyGroupRequest_FailoverStrategy) FromFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFailoverStrategyEnum performs a merge with any union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy, using the provided FailoverStrategyEnum
func (t *WritableDeviceRedundancyGroupRequest_FailoverStrategy) MergeFailoverStrategyEnum(v FailoverStrategyEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy as a BlankEnum
func (t WritableDeviceRedundancyGroupRequest_FailoverStrategy) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy as the provided BlankEnum
func (t *WritableDeviceRedundancyGroupRequest_FailoverStrategy) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableDeviceRedundancyGroupRequest_FailoverStrategy, using the provided BlankEnum
func (t *WritableDeviceRedundancyGroupRequest_FailoverStrategy) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableDeviceRedundancyGroupRequest_FailoverStrategy) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableDeviceRedundancyGroupRequest_FailoverStrategy) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsSubdeviceRoleEnum returns the union data inside the WritableDeviceTypeRequest_SubdeviceRole as a SubdeviceRoleEnum
func (t WritableDeviceTypeRequest_SubdeviceRole) AsSubdeviceRoleEnum() (SubdeviceRoleEnum, error) {
	var body SubdeviceRoleEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromSubdeviceRoleEnum overwrites any union data inside the WritableDeviceTypeRequest_SubdeviceRole as the provided SubdeviceRoleEnum
func (t *WritableDeviceTypeRequest_SubdeviceRole) FromSubdeviceRoleEnum(v SubdeviceRoleEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeSubdeviceRoleEnum performs a merge with any union data inside the WritableDeviceTypeRequest_SubdeviceRole, using the provided SubdeviceRoleEnum
func (t *WritableDeviceTypeRequest_SubdeviceRole) MergeSubdeviceRoleEnum(v SubdeviceRoleEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableDeviceTypeRequest_SubdeviceRole as a BlankEnum
func (t WritableDeviceTypeRequest_SubdeviceRole) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableDeviceTypeRequest_SubdeviceRole as the provided BlankEnum
func (t *WritableDeviceTypeRequest_SubdeviceRole) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableDeviceTypeRequest_SubdeviceRole, using the provided BlankEnum
func (t *WritableDeviceTypeRequest_SubdeviceRole) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableDeviceTypeRequest_SubdeviceRole) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableDeviceTypeRequest_SubdeviceRole) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFaceEnum returns the union data inside the WritableDeviceWithConfigContextRequest_Face as a FaceEnum
func (t WritableDeviceWithConfigContextRequest_Face) AsFaceEnum() (FaceEnum, error) {
	var body FaceEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFaceEnum overwrites any union data inside the WritableDeviceWithConfigContextRequest_Face as the provided FaceEnum
func (t *WritableDeviceWithConfigContextRequest_Face) FromFaceEnum(v FaceEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFaceEnum performs a merge with any union data inside the WritableDeviceWithConfigContextRequest_Face, using the provided FaceEnum
func (t *WritableDeviceWithConfigContextRequest_Face) MergeFaceEnum(v FaceEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableDeviceWithConfigContextRequest_Face as a BlankEnum
func (t WritableDeviceWithConfigContextRequest_Face) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableDeviceWithConfigContextRequest_Face as the provided BlankEnum
func (t *WritableDeviceWithConfigContextRequest_Face) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableDeviceWithConfigContextRequest_Face, using the provided BlankEnum
func (t *WritableDeviceWithConfigContextRequest_Face) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableDeviceWithConfigContextRequest_Face) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableDeviceWithConfigContextRequest_Face) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsProvidedContentsEnum returns the union data inside the WritableGitRepositoryRequest_ProvidedContents_Item as a ProvidedContentsEnum
func (t WritableGitRepositoryRequest_ProvidedContents_Item) AsProvidedContentsEnum() (ProvidedContentsEnum, error) {
	var body ProvidedContentsEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromProvidedContentsEnum overwrites any union data inside the WritableGitRepositoryRequest_ProvidedContents_Item as the provided ProvidedContentsEnum
func (t *WritableGitRepositoryRequest_ProvidedContents_Item) FromProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeProvidedContentsEnum performs a merge with any union data inside the WritableGitRepositoryRequest_ProvidedContents_Item, using the provided ProvidedContentsEnum
func (t *WritableGitRepositoryRequest_ProvidedContents_Item) MergeProvidedContentsEnum(v ProvidedContentsEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableGitRepositoryRequest_ProvidedContents_Item as a BlankEnum
func (t WritableGitRepositoryRequest_ProvidedContents_Item) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableGitRepositoryRequest_ProvidedContents_Item as the provided BlankEnum
func (t *WritableGitRepositoryRequest_ProvidedContents_Item) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableGitRepositoryRequest_ProvidedContents_Item, using the provided BlankEnum
func (t *WritableGitRepositoryRequest_ProvidedContents_Item) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableGitRepositoryRequest_ProvidedContents_Item) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableGitRepositoryRequest_ProvidedContents_Item) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRoleEnum returns the union data inside the WritableIPAddressRequest_Role as a RoleEnum
func (t WritableIPAddressRequest_Role) AsRoleEnum() (RoleEnum, error) {
	var body RoleEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRoleEnum overwrites any union data inside the WritableIPAddressRequest_Role as the provided RoleEnum
func (t *WritableIPAddressRequest_Role) FromRoleEnum(v RoleEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRoleEnum performs a merge with any union data inside the WritableIPAddressRequest_Role, using the provided RoleEnum
func (t *WritableIPAddressRequest_Role) MergeRoleEnum(v RoleEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableIPAddressRequest_Role as a BlankEnum
func (t WritableIPAddressRequest_Role) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableIPAddressRequest_Role as the provided BlankEnum
func (t *WritableIPAddressRequest_Role) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableIPAddressRequest_Role, using the provided BlankEnum
func (t *WritableIPAddressRequest_Role) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableIPAddressRequest_Role) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableIPAddressRequest_Role) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsModeEnum returns the union data inside the WritableInterfaceRequest_Mode as a ModeEnum
func (t WritableInterfaceRequest_Mode) AsModeEnum() (ModeEnum, error) {
	var body ModeEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromModeEnum overwrites any union data inside the WritableInterfaceRequest_Mode as the provided ModeEnum
func (t *WritableInterfaceRequest_Mode) FromModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeModeEnum performs a merge with any union data inside the WritableInterfaceRequest_Mode, using the provided ModeEnum
func (t *WritableInterfaceRequest_Mode) MergeModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableInterfaceRequest_Mode as a BlankEnum
func (t WritableInterfaceRequest_Mode) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableInterfaceRequest_Mode as the provided BlankEnum
func (t *WritableInterfaceRequest_Mode) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableInterfaceRequest_Mode, using the provided BlankEnum
func (t *WritableInterfaceRequest_Mode) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableInterfaceRequest_Mode) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableInterfaceRequest_Mode) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFeedLegEnum returns the union data inside the WritablePowerOutletRequest_FeedLeg as a FeedLegEnum
func (t WritablePowerOutletRequest_FeedLeg) AsFeedLegEnum() (FeedLegEnum, error) {
	var body FeedLegEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFeedLegEnum overwrites any union data inside the WritablePowerOutletRequest_FeedLeg as the provided FeedLegEnum
func (t *WritablePowerOutletRequest_FeedLeg) FromFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFeedLegEnum performs a merge with any union data inside the WritablePowerOutletRequest_FeedLeg, using the provided FeedLegEnum
func (t *WritablePowerOutletRequest_FeedLeg) MergeFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerOutletRequest_FeedLeg as a BlankEnum
func (t WritablePowerOutletRequest_FeedLeg) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerOutletRequest_FeedLeg as the provided BlankEnum
func (t *WritablePowerOutletRequest_FeedLeg) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerOutletRequest_FeedLeg, using the provided BlankEnum
func (t *WritablePowerOutletRequest_FeedLeg) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerOutletRequest_FeedLeg) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerOutletRequest_FeedLeg) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerOutletTypeChoices returns the union data inside the WritablePowerOutletRequest_Type as a PowerOutletTypeChoices
func (t WritablePowerOutletRequest_Type) AsPowerOutletTypeChoices() (PowerOutletTypeChoices, error) {
	var body PowerOutletTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerOutletTypeChoices overwrites any union data inside the WritablePowerOutletRequest_Type as the provided PowerOutletTypeChoices
func (t *WritablePowerOutletRequest_Type) FromPowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerOutletTypeChoices performs a merge with any union data inside the WritablePowerOutletRequest_Type, using the provided PowerOutletTypeChoices
func (t *WritablePowerOutletRequest_Type) MergePowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerOutletRequest_Type as a BlankEnum
func (t WritablePowerOutletRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerOutletRequest_Type as the provided BlankEnum
func (t *WritablePowerOutletRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerOutletRequest_Type, using the provided BlankEnum
func (t *WritablePowerOutletRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerOutletRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerOutletRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsFeedLegEnum returns the union data inside the WritablePowerOutletTemplateRequest_FeedLeg as a FeedLegEnum
func (t WritablePowerOutletTemplateRequest_FeedLeg) AsFeedLegEnum() (FeedLegEnum, error) {
	var body FeedLegEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromFeedLegEnum overwrites any union data inside the WritablePowerOutletTemplateRequest_FeedLeg as the provided FeedLegEnum
func (t *WritablePowerOutletTemplateRequest_FeedLeg) FromFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeFeedLegEnum performs a merge with any union data inside the WritablePowerOutletTemplateRequest_FeedLeg, using the provided FeedLegEnum
func (t *WritablePowerOutletTemplateRequest_FeedLeg) MergeFeedLegEnum(v FeedLegEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerOutletTemplateRequest_FeedLeg as a BlankEnum
func (t WritablePowerOutletTemplateRequest_FeedLeg) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerOutletTemplateRequest_FeedLeg as the provided BlankEnum
func (t *WritablePowerOutletTemplateRequest_FeedLeg) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerOutletTemplateRequest_FeedLeg, using the provided BlankEnum
func (t *WritablePowerOutletTemplateRequest_FeedLeg) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerOutletTemplateRequest_FeedLeg) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerOutletTemplateRequest_FeedLeg) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerOutletTypeChoices returns the union data inside the WritablePowerOutletTemplateRequest_Type as a PowerOutletTypeChoices
func (t WritablePowerOutletTemplateRequest_Type) AsPowerOutletTypeChoices() (PowerOutletTypeChoices, error) {
	var body PowerOutletTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerOutletTypeChoices overwrites any union data inside the WritablePowerOutletTemplateRequest_Type as the provided PowerOutletTypeChoices
func (t *WritablePowerOutletTemplateRequest_Type) FromPowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerOutletTypeChoices performs a merge with any union data inside the WritablePowerOutletTemplateRequest_Type, using the provided PowerOutletTypeChoices
func (t *WritablePowerOutletTemplateRequest_Type) MergePowerOutletTypeChoices(v PowerOutletTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerOutletTemplateRequest_Type as a BlankEnum
func (t WritablePowerOutletTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerOutletTemplateRequest_Type as the provided BlankEnum
func (t *WritablePowerOutletTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerOutletTemplateRequest_Type, using the provided BlankEnum
func (t *WritablePowerOutletTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerOutletTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerOutletTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerPortTypeChoices returns the union data inside the WritablePowerPortRequest_Type as a PowerPortTypeChoices
func (t WritablePowerPortRequest_Type) AsPowerPortTypeChoices() (PowerPortTypeChoices, error) {
	var body PowerPortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerPortTypeChoices overwrites any union data inside the WritablePowerPortRequest_Type as the provided PowerPortTypeChoices
func (t *WritablePowerPortRequest_Type) FromPowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerPortTypeChoices performs a merge with any union data inside the WritablePowerPortRequest_Type, using the provided PowerPortTypeChoices
func (t *WritablePowerPortRequest_Type) MergePowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerPortRequest_Type as a BlankEnum
func (t WritablePowerPortRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerPortRequest_Type as the provided BlankEnum
func (t *WritablePowerPortRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerPortRequest_Type, using the provided BlankEnum
func (t *WritablePowerPortRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerPortRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerPortRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsPowerPortTypeChoices returns the union data inside the WritablePowerPortTemplateRequest_Type as a PowerPortTypeChoices
func (t WritablePowerPortTemplateRequest_Type) AsPowerPortTypeChoices() (PowerPortTypeChoices, error) {
	var body PowerPortTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromPowerPortTypeChoices overwrites any union data inside the WritablePowerPortTemplateRequest_Type as the provided PowerPortTypeChoices
func (t *WritablePowerPortTemplateRequest_Type) FromPowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergePowerPortTypeChoices performs a merge with any union data inside the WritablePowerPortTemplateRequest_Type, using the provided PowerPortTypeChoices
func (t *WritablePowerPortTemplateRequest_Type) MergePowerPortTypeChoices(v PowerPortTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritablePowerPortTemplateRequest_Type as a BlankEnum
func (t WritablePowerPortTemplateRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritablePowerPortTemplateRequest_Type as the provided BlankEnum
func (t *WritablePowerPortTemplateRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritablePowerPortTemplateRequest_Type, using the provided BlankEnum
func (t *WritablePowerPortTemplateRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritablePowerPortTemplateRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritablePowerPortTemplateRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsOuterUnitEnum returns the union data inside the WritableRackRequest_OuterUnit as a OuterUnitEnum
func (t WritableRackRequest_OuterUnit) AsOuterUnitEnum() (OuterUnitEnum, error) {
	var body OuterUnitEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromOuterUnitEnum overwrites any union data inside the WritableRackRequest_OuterUnit as the provided OuterUnitEnum
func (t *WritableRackRequest_OuterUnit) FromOuterUnitEnum(v OuterUnitEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeOuterUnitEnum performs a merge with any union data inside the WritableRackRequest_OuterUnit, using the provided OuterUnitEnum
func (t *WritableRackRequest_OuterUnit) MergeOuterUnitEnum(v OuterUnitEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableRackRequest_OuterUnit as a BlankEnum
func (t WritableRackRequest_OuterUnit) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableRackRequest_OuterUnit as the provided BlankEnum
func (t *WritableRackRequest_OuterUnit) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableRackRequest_OuterUnit, using the provided BlankEnum
func (t *WritableRackRequest_OuterUnit) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableRackRequest_OuterUnit) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableRackRequest_OuterUnit) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsRackTypeChoices returns the union data inside the WritableRackRequest_Type as a RackTypeChoices
func (t WritableRackRequest_Type) AsRackTypeChoices() (RackTypeChoices, error) {
	var body RackTypeChoices
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromRackTypeChoices overwrites any union data inside the WritableRackRequest_Type as the provided RackTypeChoices
func (t *WritableRackRequest_Type) FromRackTypeChoices(v RackTypeChoices) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeRackTypeChoices performs a merge with any union data inside the WritableRackRequest_Type, using the provided RackTypeChoices
func (t *WritableRackRequest_Type) MergeRackTypeChoices(v RackTypeChoices) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableRackRequest_Type as a BlankEnum
func (t WritableRackRequest_Type) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableRackRequest_Type as the provided BlankEnum
func (t *WritableRackRequest_Type) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableRackRequest_Type, using the provided BlankEnum
func (t *WritableRackRequest_Type) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableRackRequest_Type) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableRackRequest_Type) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}

// AsModeEnum returns the union data inside the WritableVMInterfaceRequest_Mode as a ModeEnum
func (t WritableVMInterfaceRequest_Mode) AsModeEnum() (ModeEnum, error) {
	var body ModeEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromModeEnum overwrites any union data inside the WritableVMInterfaceRequest_Mode as the provided ModeEnum
func (t *WritableVMInterfaceRequest_Mode) FromModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeModeEnum performs a merge with any union data inside the WritableVMInterfaceRequest_Mode, using the provided ModeEnum
func (t *WritableVMInterfaceRequest_Mode) MergeModeEnum(v ModeEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

// AsBlankEnum returns the union data inside the WritableVMInterfaceRequest_Mode as a BlankEnum
func (t WritableVMInterfaceRequest_Mode) AsBlankEnum() (BlankEnum, error) {
	var body BlankEnum
	err := json.Unmarshal(t.union, &body)
	return body, err
}

// FromBlankEnum overwrites any union data inside the WritableVMInterfaceRequest_Mode as the provided BlankEnum
func (t *WritableVMInterfaceRequest_Mode) FromBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	t.union = b
	return err
}

// MergeBlankEnum performs a merge with any union data inside the WritableVMInterfaceRequest_Mode, using the provided BlankEnum
func (t *WritableVMInterfaceRequest_Mode) MergeBlankEnum(v BlankEnum) error {
	b, err := json.Marshal(v)
	if err != nil {
		return err
	}

	merged, err := runtime.JsonMerge(b, t.union)
	t.union = merged
	return err
}

func (t WritableVMInterfaceRequest_Mode) MarshalJSON() ([]byte, error) {
	b, err := t.union.MarshalJSON()
	return b, err
}

func (t *WritableVMInterfaceRequest_Mode) UnmarshalJSON(b []byte) error {
	err := t.union.UnmarshalJSON(b)
	return err
}
