{
  "properties": {
    "apiVersion": {
      "description": "apiVersion defines the versioned schema of this representation of an object. Servers should convert recognized schemas to the latest internal value, and may reject unrecognized values. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "kind is a string value representing the REST resource this object represents. Servers may infer this from the endpoint the client submits requests to. Cannot be updated. In CamelCase. More info: https://git.k8s.io/community/contributors/devel/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "oneOf": [
        {
          "required": [
            "rrdatas"
          ]
        },
        {
          "required": [
            "rrdatasRefs"
          ]
        },
        {
          "required": [
            "routingPolicy"
          ]
        }
      ],
      "properties": {
        "managedZoneRef": {
          "oneOf": [
            {
              "not": {
                "required": [
                  "external"
                ]
              },
              "required": [
                "name"
              ]
            },
            {
              "not": {
                "anyOf": [
                  {
                    "required": [
                      "name"
                    ]
                  },
                  {
                    "required": [
                      "namespace"
                    ]
                  }
                ]
              },
              "required": [
                "external"
              ]
            }
          ],
          "properties": {
            "external": {
              "description": "Allowed value: The `name` field of a `DNSManagedZone` resource.",
              "type": "string"
            },
            "name": {
              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
              "type": "string"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "name": {
          "description": "Immutable. The DNS name this record set will apply to.",
          "type": "string"
        },
        "routingPolicy": {
          "description": "The configuration for steering traffic based on query. You can specify either Weighted Round Robin(WRR) type or Geolocation(GEO) type.",
          "properties": {
            "enableGeoFencing": {
              "description": "Specifies whether to enable fencing for geo queries.",
              "type": "boolean"
            },
            "geo": {
              "description": "The configuration for Geo location based routing policy.",
              "items": {
                "properties": {
                  "healthCheckedTargets": {
                    "description": "For A and AAAA types only. The list of targets to be health checked. These can be specified along with `rrdatas` within this item.",
                    "properties": {
                      "internalLoadBalancers": {
                        "description": "The list of internal load balancers to health check.",
                        "items": {
                          "properties": {
                            "ipAddressRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "ipProtocol": {
                              "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].",
                              "type": "string"
                            },
                            "loadBalancerType": {
                              "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].",
                              "type": "string"
                            },
                            "networkRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "port": {
                              "description": "The configured port of the load balancer.",
                              "type": "string"
                            },
                            "projectRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `name` field of a `Project` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "regionRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "ipAddressRef",
                            "ipProtocol",
                            "loadBalancerType",
                            "networkRef",
                            "port",
                            "projectRef"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      }
                    },
                    "required": [
                      "internalLoadBalancers"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "location": {
                    "description": "The location name defined in Google Cloud.",
                    "type": "string"
                  },
                  "rrdatasRefs": {
                    "items": {
                      "oneOf": [
                        {
                          "not": {
                            "required": [
                              "external"
                            ]
                          },
                          "required": [
                            "name",
                            "kind"
                          ]
                        },
                        {
                          "not": {
                            "anyOf": [
                              {
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "required": [
                                  "namespace"
                                ]
                              },
                              {
                                "required": [
                                  "kind"
                                ]
                              }
                            ]
                          },
                          "required": [
                            "external"
                          ]
                        }
                      ],
                      "properties": {
                        "external": {
                          "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                          "type": "string"
                        },
                        "kind": {
                          "description": "Kind of the referent. Allowed values: ComputeAddress",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  }
                },
                "required": [
                  "location"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            },
            "primaryBackup": {
              "description": "The configuration for a primary-backup policy with global to regional failover. Queries are responded to with the global primary targets, but if none of the primary targets are healthy, then we fallback to a regional failover policy.",
              "properties": {
                "backupGeo": {
                  "description": "The backup geo targets, which provide a regional failover policy for the otherwise global primary targets.",
                  "items": {
                    "properties": {
                      "healthCheckedTargets": {
                        "description": "For A and AAAA types only. The list of targets to be health checked. These can be specified along with `rrdatas` within this item.",
                        "properties": {
                          "internalLoadBalancers": {
                            "description": "The list of internal load balancers to health check.",
                            "items": {
                              "properties": {
                                "ipAddressRef": {
                                  "oneOf": [
                                    {
                                      "not": {
                                        "required": [
                                          "external"
                                        ]
                                      },
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "not": {
                                        "anyOf": [
                                          {
                                            "required": [
                                              "name"
                                            ]
                                          },
                                          {
                                            "required": [
                                              "namespace"
                                            ]
                                          }
                                        ]
                                      },
                                      "required": [
                                        "external"
                                      ]
                                    }
                                  ],
                                  "properties": {
                                    "external": {
                                      "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                      "type": "string"
                                    },
                                    "namespace": {
                                      "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "ipProtocol": {
                                  "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].",
                                  "type": "string"
                                },
                                "loadBalancerType": {
                                  "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].",
                                  "type": "string"
                                },
                                "networkRef": {
                                  "oneOf": [
                                    {
                                      "not": {
                                        "required": [
                                          "external"
                                        ]
                                      },
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "not": {
                                        "anyOf": [
                                          {
                                            "required": [
                                              "name"
                                            ]
                                          },
                                          {
                                            "required": [
                                              "namespace"
                                            ]
                                          }
                                        ]
                                      },
                                      "required": [
                                        "external"
                                      ]
                                    }
                                  ],
                                  "properties": {
                                    "external": {
                                      "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                      "type": "string"
                                    },
                                    "namespace": {
                                      "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "port": {
                                  "description": "The configured port of the load balancer.",
                                  "type": "string"
                                },
                                "projectRef": {
                                  "oneOf": [
                                    {
                                      "not": {
                                        "required": [
                                          "external"
                                        ]
                                      },
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "not": {
                                        "anyOf": [
                                          {
                                            "required": [
                                              "name"
                                            ]
                                          },
                                          {
                                            "required": [
                                              "namespace"
                                            ]
                                          }
                                        ]
                                      },
                                      "required": [
                                        "external"
                                      ]
                                    }
                                  ],
                                  "properties": {
                                    "external": {
                                      "description": "Allowed value: The `name` field of a `Project` resource.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                      "type": "string"
                                    },
                                    "namespace": {
                                      "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                },
                                "regionRef": {
                                  "oneOf": [
                                    {
                                      "not": {
                                        "required": [
                                          "external"
                                        ]
                                      },
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "not": {
                                        "anyOf": [
                                          {
                                            "required": [
                                              "name"
                                            ]
                                          },
                                          {
                                            "required": [
                                              "namespace"
                                            ]
                                          }
                                        ]
                                      },
                                      "required": [
                                        "external"
                                      ]
                                    }
                                  ],
                                  "properties": {
                                    "external": {
                                      "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.",
                                      "type": "string"
                                    },
                                    "name": {
                                      "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                      "type": "string"
                                    },
                                    "namespace": {
                                      "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                      "type": "string"
                                    }
                                  },
                                  "type": "object",
                                  "additionalProperties": false
                                }
                              },
                              "required": [
                                "ipAddressRef",
                                "ipProtocol",
                                "loadBalancerType",
                                "networkRef",
                                "port",
                                "projectRef"
                              ],
                              "type": "object",
                              "additionalProperties": false
                            },
                            "type": "array"
                          }
                        },
                        "required": [
                          "internalLoadBalancers"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "location": {
                        "description": "The location name defined in Google Cloud.",
                        "type": "string"
                      },
                      "rrdatasRefs": {
                        "items": {
                          "oneOf": [
                            {
                              "not": {
                                "required": [
                                  "external"
                                ]
                              },
                              "required": [
                                "name"
                              ]
                            },
                            {
                              "not": {
                                "anyOf": [
                                  {
                                    "required": [
                                      "name"
                                    ]
                                  },
                                  {
                                    "required": [
                                      "namespace"
                                    ]
                                  }
                                ]
                              },
                              "required": [
                                "external"
                              ]
                            }
                          ],
                          "properties": {
                            "external": {
                              "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                              "type": "string"
                            },
                            "name": {
                              "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                              "type": "string"
                            },
                            "namespace": {
                              "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                              "type": "string"
                            }
                          },
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      }
                    },
                    "required": [
                      "location"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "type": "array"
                },
                "enableGeoFencingForBackups": {
                  "description": "Specifies whether to enable fencing for backup geo queries.",
                  "type": "boolean"
                },
                "primary": {
                  "description": "The list of global primary targets to be health checked.",
                  "properties": {
                    "internalLoadBalancers": {
                      "description": "The list of internal load balancers to health check.",
                      "items": {
                        "properties": {
                          "ipAddressRef": {
                            "oneOf": [
                              {
                                "not": {
                                  "required": [
                                    "external"
                                  ]
                                },
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "not": {
                                  "anyOf": [
                                    {
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "required": [
                                        "namespace"
                                      ]
                                    }
                                  ]
                                },
                                "required": [
                                  "external"
                                ]
                              }
                            ],
                            "properties": {
                              "external": {
                                "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "namespace": {
                                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "ipProtocol": {
                            "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].",
                            "type": "string"
                          },
                          "loadBalancerType": {
                            "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].",
                            "type": "string"
                          },
                          "networkRef": {
                            "oneOf": [
                              {
                                "not": {
                                  "required": [
                                    "external"
                                  ]
                                },
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "not": {
                                  "anyOf": [
                                    {
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "required": [
                                        "namespace"
                                      ]
                                    }
                                  ]
                                },
                                "required": [
                                  "external"
                                ]
                              }
                            ],
                            "properties": {
                              "external": {
                                "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "namespace": {
                                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "port": {
                            "description": "The configured port of the load balancer.",
                            "type": "string"
                          },
                          "projectRef": {
                            "oneOf": [
                              {
                                "not": {
                                  "required": [
                                    "external"
                                  ]
                                },
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "not": {
                                  "anyOf": [
                                    {
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "required": [
                                        "namespace"
                                      ]
                                    }
                                  ]
                                },
                                "required": [
                                  "external"
                                ]
                              }
                            ],
                            "properties": {
                              "external": {
                                "description": "Allowed value: The `name` field of a `Project` resource.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "namespace": {
                                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          },
                          "regionRef": {
                            "oneOf": [
                              {
                                "not": {
                                  "required": [
                                    "external"
                                  ]
                                },
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "not": {
                                  "anyOf": [
                                    {
                                      "required": [
                                        "name"
                                      ]
                                    },
                                    {
                                      "required": [
                                        "namespace"
                                      ]
                                    }
                                  ]
                                },
                                "required": [
                                  "external"
                                ]
                              }
                            ],
                            "properties": {
                              "external": {
                                "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.",
                                "type": "string"
                              },
                              "name": {
                                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                "type": "string"
                              },
                              "namespace": {
                                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                "type": "string"
                              }
                            },
                            "type": "object",
                            "additionalProperties": false
                          }
                        },
                        "required": [
                          "ipAddressRef",
                          "ipProtocol",
                          "loadBalancerType",
                          "networkRef",
                          "port",
                          "projectRef"
                        ],
                        "type": "object",
                        "additionalProperties": false
                      },
                      "type": "array"
                    }
                  },
                  "required": [
                    "internalLoadBalancers"
                  ],
                  "type": "object",
                  "additionalProperties": false
                },
                "trickleRatio": {
                  "description": "Specifies the percentage of traffic to send to the backup targets even when the primary targets are healthy.",
                  "type": "number"
                }
              },
              "required": [
                "backupGeo",
                "primary"
              ],
              "type": "object",
              "additionalProperties": false
            },
            "wrr": {
              "description": "The configuration for Weighted Round Robin based routing policy.",
              "items": {
                "properties": {
                  "healthCheckedTargets": {
                    "description": "The list of targets to be health checked. Note that if DNSSEC is enabled for this zone, only one of `rrdatas` or `health_checked_targets` can be set.",
                    "properties": {
                      "internalLoadBalancers": {
                        "description": "The list of internal load balancers to health check.",
                        "items": {
                          "properties": {
                            "ipAddressRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "ipProtocol": {
                              "description": "The configured IP protocol of the load balancer. This value is case-sensitive. Possible values: [\"tcp\", \"udp\"].",
                              "type": "string"
                            },
                            "loadBalancerType": {
                              "description": "The type of load balancer. This value is case-sensitive. Possible values: [\"regionalL4ilb\", \"regionalL7ilb\", \"globalL7ilb\"].",
                              "type": "string"
                            },
                            "networkRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `selfLink` field of a `ComputeNetwork` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "port": {
                              "description": "The configured port of the load balancer.",
                              "type": "string"
                            },
                            "projectRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `name` field of a `Project` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            },
                            "regionRef": {
                              "oneOf": [
                                {
                                  "not": {
                                    "required": [
                                      "external"
                                    ]
                                  },
                                  "required": [
                                    "name"
                                  ]
                                },
                                {
                                  "not": {
                                    "anyOf": [
                                      {
                                        "required": [
                                          "name"
                                        ]
                                      },
                                      {
                                        "required": [
                                          "namespace"
                                        ]
                                      }
                                    ]
                                  },
                                  "required": [
                                    "external"
                                  ]
                                }
                              ],
                              "properties": {
                                "external": {
                                  "description": "Allowed value: The `location` field of a `ComputeForwardingRule` resource.",
                                  "type": "string"
                                },
                                "name": {
                                  "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                                  "type": "string"
                                },
                                "namespace": {
                                  "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                                  "type": "string"
                                }
                              },
                              "type": "object",
                              "additionalProperties": false
                            }
                          },
                          "required": [
                            "ipAddressRef",
                            "ipProtocol",
                            "loadBalancerType",
                            "networkRef",
                            "port",
                            "projectRef"
                          ],
                          "type": "object",
                          "additionalProperties": false
                        },
                        "type": "array"
                      }
                    },
                    "required": [
                      "internalLoadBalancers"
                    ],
                    "type": "object",
                    "additionalProperties": false
                  },
                  "rrdatasRefs": {
                    "items": {
                      "oneOf": [
                        {
                          "not": {
                            "required": [
                              "external"
                            ]
                          },
                          "required": [
                            "name",
                            "kind"
                          ]
                        },
                        {
                          "not": {
                            "anyOf": [
                              {
                                "required": [
                                  "name"
                                ]
                              },
                              {
                                "required": [
                                  "namespace"
                                ]
                              },
                              {
                                "required": [
                                  "kind"
                                ]
                              }
                            ]
                          },
                          "required": [
                            "external"
                          ]
                        }
                      ],
                      "properties": {
                        "external": {
                          "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                          "type": "string"
                        },
                        "kind": {
                          "description": "Kind of the referent. Allowed values: ComputeAddress",
                          "type": "string"
                        },
                        "name": {
                          "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                          "type": "string"
                        },
                        "namespace": {
                          "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                          "type": "string"
                        }
                      },
                      "type": "object",
                      "additionalProperties": false
                    },
                    "type": "array"
                  },
                  "weight": {
                    "description": "The ratio of traffic routed to the target.",
                    "type": "number"
                  }
                },
                "required": [
                  "weight"
                ],
                "type": "object",
                "additionalProperties": false
              },
              "type": "array"
            }
          },
          "type": "object",
          "additionalProperties": false
        },
        "rrdatas": {
          "description": "DEPRECATED. Although this field is still available, there is limited support. We recommend that you use `spec.rrdatasRefs` instead.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "rrdatasRefs": {
          "items": {
            "oneOf": [
              {
                "not": {
                  "required": [
                    "external"
                  ]
                },
                "required": [
                  "name",
                  "kind"
                ]
              },
              {
                "not": {
                  "anyOf": [
                    {
                      "required": [
                        "name"
                      ]
                    },
                    {
                      "required": [
                        "namespace"
                      ]
                    },
                    {
                      "required": [
                        "kind"
                      ]
                    }
                  ]
                },
                "required": [
                  "external"
                ]
              }
            ],
            "properties": {
              "external": {
                "description": "Allowed value: The `address` field of a `ComputeAddress` resource.",
                "type": "string"
              },
              "kind": {
                "description": "Kind of the referent. Allowed values: ComputeAddress",
                "type": "string"
              },
              "name": {
                "description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
                "type": "string"
              },
              "namespace": {
                "description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "ttl": {
          "description": "The time-to-live of this record set (seconds).",
          "type": "integer"
        },
        "type": {
          "description": "The DNS record set type.",
          "type": "string"
        }
      },
      "required": [
        "managedZoneRef",
        "name",
        "type"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "properties": {
        "conditions": {
          "description": "Conditions represent the latest available observation of the resource's current state.",
          "items": {
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "type": "string"
              },
              "message": {
                "description": "Human-readable message indicating details about last transition.",
                "type": "string"
              },
              "reason": {
                "description": "Unique, one-word, CamelCase reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status is the status of the condition. Can be True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type is the type of the condition.",
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "observedGeneration": {
          "description": "ObservedGeneration is the generation of the resource that was most recently observed by the Config Connector controller. If this is equal to metadata.generation, then that means that the current reported status reflects the most recent desired state of the resource.",
          "type": "integer"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "required": [
    "spec"
  ],
  "type": "object"
}
