{
  "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": {
      "properties": {
        "credentials": {
          "description": "List of public key certificates to authenticate devices.",
          "items": {
            "properties": {
              "publicKeyCertificate": {
                "description": "A public key certificate format and data.",
                "type": "object",
                "x-kubernetes-preserve-unknown-fields": true
              }
            },
            "required": [
              "publicKeyCertificate"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "eventNotificationConfigs": {
          "description": "List of configurations for event notifications, such as PubSub topics\nto publish device events to.",
          "items": {
            "properties": {
              "pubsubTopicName": {
                "description": "PubSub topic name to publish device events.",
                "type": "string"
              },
              "subfolderMatches": {
                "description": "If the subfolder name matches this string exactly, this\nconfiguration will be used. The string must not include the\nleading '/' character. If empty, all strings are matched. Empty\nvalue can only be used for the last 'event_notification_configs'\nitem.",
                "type": "string"
              }
            },
            "required": [
              "pubsubTopicName"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "httpConfig": {
          "description": "Activate or deactivate HTTP.",
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        },
        "logLevel": {
          "description": "The default logging verbosity for activity from devices in this\nregistry. Specifies which events should be written to logs. For\nexample, if the LogLevel is ERROR, only events that terminate in\nerrors will be logged. LogLevel is inclusive; enabling INFO logging\nwill also enable ERROR logging. Default value: \"NONE\" Possible values: [\"NONE\", \"ERROR\", \"INFO\", \"DEBUG\"].",
          "type": "string"
        },
        "mqttConfig": {
          "description": "Activate or deactivate MQTT.",
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        },
        "project": {
          "description": "Immutable.",
          "type": "string"
        },
        "region": {
          "description": "Immutable. The region in which the created registry should reside.\nIf it is not provided, the provider region is used.",
          "type": "string"
        },
        "resourceID": {
          "description": "Immutable. Optional. The name of the resource. Used for creation and acquisition. When unset, the value of `metadata.name` is used as the default.",
          "type": "string"
        },
        "stateNotificationConfig": {
          "description": "A PubSub topic to publish device state updates.",
          "type": "object",
          "x-kubernetes-preserve-unknown-fields": true
        }
      },
      "required": [
        "region"
      ],
      "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"
}
