{
  "description": "PostgresUser is the Schema for the postgresusers API",
  "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/sig-architecture/api-conventions.md#resources",
      "type": [
        "string",
        "null"
      ]
    },
    "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/sig-architecture/api-conventions.md#types-kinds",
      "type": [
        "string",
        "null"
      ]
    },
    "metadata": {
      "type": [
        "object",
        "null"
      ]
    },
    "spec": {
      "additionalProperties": false,
      "description": "PostgresUserSpec defines the desired state of PostgresUser",
      "properties": {
        "annotations": {
          "additionalProperties": {
            "type": "string"
          },
          "type": [
            "object",
            "null"
          ]
        },
        "aws": {
          "additionalProperties": false,
          "description": "AWS specific settings for this user.",
          "properties": {
            "enableIamAuth": {
              "default": false,
              "description": "Enable IAM authentication for this user (PostgreSQL on AWS RDS only)",
              "type": [
                "boolean",
                "null"
              ]
            }
          },
          "type": [
            "object",
            "null"
          ]
        },
        "database": {
          "description": "Name of the PostgresDatabase this user will be related to",
          "type": "string"
        },
        "labels": {
          "additionalProperties": {
            "type": "string"
          },
          "type": [
            "object",
            "null"
          ]
        },
        "privileges": {
          "description": "List of privileges to grant to this user",
          "type": [
            "string",
            "null"
          ]
        },
        "role": {
          "description": "Name of the PostgresRole this user will be associated with",
          "type": "string"
        },
        "secretName": {
          "description": "Name of the secret to create with user credentials",
          "type": "string"
        },
        "secretTemplate": {
          "additionalProperties": {
            "type": "string"
          },
          "type": [
            "object",
            "null"
          ]
        }
      },
      "required": [
        "database",
        "role",
        "secretName"
      ],
      "type": [
        "object",
        "null"
      ]
    },
    "status": {
      "additionalProperties": false,
      "description": "PostgresUserStatus defines the observed state of PostgresUser",
      "properties": {
        "databaseName": {
          "type": "string"
        },
        "enableIamAuth": {
          "description": "Reflects whether IAM authentication is enabled for this user.",
          "type": [
            "boolean",
            "null"
          ]
        },
        "postgresGroup": {
          "type": "string"
        },
        "postgresLogin": {
          "type": "string"
        },
        "postgresRole": {
          "type": "string"
        },
        "succeeded": {
          "type": "boolean"
        }
      },
      "required": [
        "databaseName",
        "postgresGroup",
        "postgresLogin",
        "postgresRole",
        "succeeded"
      ],
      "type": [
        "object",
        "null"
      ]
    }
  },
  "type": "object"
}