/*
 * API Documentation
 *
 * Source of truth and network automation platform
 *
 * The version of the OpenAPI document: 3.1.0 (3.1)
 *
 * Generated by: https://openapi-generator.tech
 */

#[derive(Clone, Debug, PartialEq, Serialize, Deserialize)]
#[serde(tag = "object_type")]
pub enum ObjectChangeChangedObject {
    #[serde(rename = "circuits.circuit")]
    NestedCircuit {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "circuits.circuittermination")]
    NestedCircuitTermination {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "circuits.circuittype")]
    NestedCircuitType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "circuits.provider")]
    NestedProvider {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "circuits.providernetwork")]
    NestedProviderNetwork {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "cloud.cloudaccount")]
    NestedCloudAccount {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "cloud.cloudnetwork")]
    NestedCloudNetwork {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "cloud.cloudresourcetype")]
    NestedCloudResourceType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "cloud.cloudservice")]
    NestedCloudService {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "data_validation.minmaxvalidationrule")]
    NestedMinMaxValidationRule {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "data_validation.regularexpressionvalidationrule")]
    NestedRegularExpressionValidationRule {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "data_validation.requiredvalidationrule")]
    NestedRequiredValidationRule {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "data_validation.uniquevalidationrule")]
    NestedUniqueValidationRule {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.cable")]
    NestedCable {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.consoleport")]
    NestedConsolePort {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.consoleporttemplate")]
    NestedConsolePortTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.consoleserverport")]
    NestedConsoleServerPort {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.consoleserverporttemplate")]
    NestedConsoleServerPortTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.controller")]
    NestedController {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.controllermanageddevicegroup")]
    NestedControllerManagedDeviceGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.device")]
    NestedDevice {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.devicebay")]
    NestedDeviceBay {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.devicebaytemplate")]
    NestedDeviceBayTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.devicefamily")]
    NestedDeviceFamily {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.deviceredundancygroup")]
    NestedDeviceRedundancyGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.devicetype")]
    NestedDeviceType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.devicetypetosoftwareimagefile")]
    NestedDeviceTypeToSoftwareImageFile {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.frontport")]
    NestedFrontPort {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.frontporttemplate")]
    NestedFrontPortTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.interface")]
    NestedInterface {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.interfaceredundancygroup")]
    NestedInterfaceRedundancyGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.interfaceredundancygroupassociation")]
    NestedInterfaceRedundancyGroupAssociation {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.interfacetemplate")]
    NestedInterfaceTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.inventoryitem")]
    NestedInventoryItem {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.location")]
    NestedLocation {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.locationtype")]
    NestedLocationType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.manufacturer")]
    NestedManufacturer {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.module")]
    NestedModule {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.modulebay")]
    NestedModuleBay {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.modulebaytemplate")]
    NestedModuleBayTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.modulefamily")]
    NestedModuleFamily {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.moduletype")]
    NestedModuleType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.platform")]
    NestedPlatform {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.powerfeed")]
    NestedPowerFeed {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.poweroutlet")]
    NestedPowerOutlet {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.poweroutlettemplate")]
    NestedPowerOutletTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.powerpanel")]
    NestedPowerPanel {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.powerport")]
    NestedPowerPort {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.powerporttemplate")]
    NestedPowerPortTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.rack")]
    NestedRack {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.rackgroup")]
    NestedRackGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.rackreservation")]
    NestedRackReservation {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.rearport")]
    NestedRearPort {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.rearporttemplate")]
    NestedRearPortTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.softwareimagefile")]
    NestedSoftwareImageFile {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.softwareversion")]
    NestedSoftwareVersion {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.virtualchassis")]
    NestedVirtualChassis {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "dcim.virtualdevicecontext")]
    NestedVirtualDeviceContext {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.approvalworkflow")]
    NestedApprovalWorkflow {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.approvalworkflowdefinition")]
    NestedApprovalWorkflowDefinition {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.approvalworkflowstage")]
    NestedApprovalWorkflowStage {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.approvalworkflowstagedefinition")]
    NestedApprovalWorkflowStageDefinition {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.computedfield")]
    NestedComputedField {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.configcontext")]
    NestedConfigContext {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.configcontextschema")]
    NestedConfigContextSchema {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.contact")]
    NestedContact {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.contactassociation")]
    NestedContactAssociation {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.customfield")]
    NestedCustomField {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.customfieldchoice")]
    NestedCustomFieldChoice {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.customlink")]
    NestedCustomLink {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.dynamicgroup")]
    NestedDynamicGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.exporttemplate")]
    NestedExportTemplate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.externalintegration")]
    NestedExternalIntegration {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.gitrepository")]
    NestedGitRepository {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.graphqlquery")]
    NestedGraphQlQuery {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.job")]
    NestedJob {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.jobbutton")]
    NestedJobButton {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.jobhook")]
    NestedJobHook {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.jobqueue")]
    NestedJobQueue {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.metadatachoice")]
    NestedMetadataChoice {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.metadatatype")]
    NestedMetadataType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.note")]
    NestedNote {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.objectmetadata")]
    NestedObjectMetadata {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.relationship")]
    NestedRelationship {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.role")]
    NestedRole {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.savedview")]
    NestedSavedView {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.secret")]
    NestedSecret {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.secretsgroup")]
    NestedSecretsGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.staticgroupassociation")]
    NestedStaticGroupAssociation {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.status")]
    NestedStatus {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.tag")]
    NestedTag {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.team")]
    NestedTeam {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "extras.webhook")]
    NestedWebhook {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.ipaddress")]
    NestedIpAddress {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.namespace")]
    NestedNamespace {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.prefix")]
    NestedPrefix {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.rir")]
    NestedRir {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.routetarget")]
    NestedRouteTarget {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.service")]
    NestedService {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.vlan")]
    NestedVlan {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.vlangroup")]
    NestedVlanGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "ipam.vrf")]
    NestedVrf {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "load_balancers.certificateprofile")]
    NestedCertificateProfile {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "load_balancers.healthcheckmonitor")]
    NestedHealthCheckMonitor {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "load_balancers.loadbalancerpool")]
    NestedLoadBalancerPool {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "load_balancers.loadbalancerpoolmember")]
    NestedLoadBalancerPoolMember {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "load_balancers.virtualserver")]
    NestedVirtualServer {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "tenancy.tenant")]
    NestedTenant {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "tenancy.tenantgroup")]
    NestedTenantGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "users.objectpermission")]
    NestedObjectPermission {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "virtualization.cluster")]
    NestedCluster {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "virtualization.clustergroup")]
    NestedClusterGroup {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "virtualization.clustertype")]
    NestedClusterType {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "virtualization.virtualmachine")]
    NestedVirtualMachine {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "virtualization.vminterface")]
    NestedVmInterface {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpn")]
    NestedVpn {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpnphase1policy")]
    NestedVpnPhase1Policy {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpnphase2policy")]
    NestedVpnPhase2Policy {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpnprofile")]
    NestedVpnProfile {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpntermination")]
    NestedVpnTermination {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpntunnel")]
    NestedVpnTunnel {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "vpn.vpntunnelendpoint")]
    NestedVpnTunnelEndpoint {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "wireless.radioprofile")]
    NestedRadioProfile {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "wireless.supporteddatarate")]
    NestedSupportedDataRate {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
    #[serde(rename = "wireless.wirelessnetwork")]
    NestedWirelessNetwork {
        #[serde(rename = "id", skip_serializing_if = "Option::is_none")]
        id: Option<uuid::Uuid>,
        #[serde(rename = "url", skip_serializing_if = "Option::is_none")]
        url: Option<String>,
    },
}
