{
  "description": "AtlasStreamInstance is the Schema for the atlasstreaminstances API",
  "properties": {
    "apiVersion": {
      "description": "APIVersion defines the versioned schema of this representation of an object.\nServers should convert recognized schemas to the latest internal value, and\nmay reject unrecognized values.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources",
      "type": "string"
    },
    "kind": {
      "description": "Kind is a string value representing the REST resource this object represents.\nServers may infer this from the endpoint the client submits requests to.\nCannot be updated.\nIn CamelCase.\nMore info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
      "type": "string"
    },
    "metadata": {
      "type": "object"
    },
    "spec": {
      "description": "AtlasStreamInstanceSpec defines the target state of AtlasStreamInstance.",
      "properties": {
        "clusterConfig": {
          "description": "The configuration to be used to connect to an Atlas Cluster.",
          "properties": {
            "provider": {
              "default": "AWS",
              "description": "Name of the cluster configured for this connection.",
              "enum": [
                "AWS",
                "GCP",
                "AZURE",
                "TENANT",
                "SERVERLESS"
              ],
              "type": "string"
            },
            "region": {
              "description": "Name of the cloud provider region hosting Atlas Stream Processing.",
              "type": "string"
            },
            "tier": {
              "default": "SP10",
              "description": "Selected tier for the Stream Instance. Configures Memory / VCPU allowances.",
              "enum": [
                "SP10",
                "SP30",
                "SP50"
              ],
              "type": "string"
            }
          },
          "required": [
            "provider",
            "region",
            "tier"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "connectionRegistry": {
          "description": "List of connections of the stream instance for the specified project.",
          "items": {
            "description": "ResourceRefNamespaced is a reference to a Kubernetes Resource that allows to configure the namespace",
            "properties": {
              "name": {
                "description": "Name of the Kubernetes Resource",
                "type": "string"
              },
              "namespace": {
                "description": "Namespace of the Kubernetes Resource",
                "type": "string"
              }
            },
            "required": [
              "name"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "name": {
          "description": "Human-readable label that identifies the stream connection.",
          "type": "string"
        },
        "projectRef": {
          "description": "Project which the instance belongs to.",
          "properties": {
            "name": {
              "description": "Name of the Kubernetes Resource",
              "type": "string"
            },
            "namespace": {
              "description": "Namespace of the Kubernetes Resource",
              "type": "string"
            }
          },
          "required": [
            "name"
          ],
          "type": "object",
          "additionalProperties": false
        }
      },
      "required": [
        "clusterConfig",
        "name",
        "projectRef"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "AtlasStreamInstanceStatus defines the observed state of AtlasStreamInstance.",
      "properties": {
        "conditions": {
          "description": "Conditions is the list of statuses showing the current state of the Atlas Custom Resource",
          "items": {
            "description": "Condition describes the state of an Atlas Custom Resource at a certain point.",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.\nRepresented in ISO 8601 format.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A message providing details about the transition.",
                "type": "string"
              },
              "reason": {
                "description": "The reason for the condition's last transition.",
                "type": "string"
              },
              "status": {
                "description": "Status of the condition; one of True, False, Unknown.",
                "type": "string"
              },
              "type": {
                "description": "Type of Atlas Custom Resource condition.",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "connections": {
          "description": "List of connections configured in the stream instance.",
          "items": {
            "properties": {
              "name": {
                "description": "Human-readable label that uniquely identifies the stream connection",
                "type": "string"
              },
              "resourceRef": {
                "description": "Reference for the resource that contains connection configuration",
                "properties": {
                  "name": {
                    "description": "Name of the Kubernetes Resource",
                    "type": "string"
                  },
                  "namespace": {
                    "description": "Namespace of the Kubernetes Resource",
                    "type": "string"
                  }
                },
                "required": [
                  "name"
                ],
                "type": "object",
                "additionalProperties": false
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "hostnames": {
          "description": "List that contains the hostnames assigned to the stream instance.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "id": {
          "description": "Unique 24-hexadecimal character string that identifies the instance",
          "type": "string"
        },
        "observedGeneration": {
          "description": "ObservedGeneration indicates the generation of the resource specification of which the Atlas Operator is aware.\nThe Atlas Operator updates this field to the value of 'metadata.generation' as soon as it starts reconciliation of the resource.",
          "format": "int64",
          "type": "integer"
        }
      },
      "required": [
        "conditions"
      ],
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
