{
  "description": "DBProxy is the Schema for the DBProxies 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": "DBProxySpec defines the desired state of DBProxy.\n\nThe data structure representing a proxy managed by the RDS Proxy.\n\nThis data type is used as a response element in the DescribeDBProxies action.",
      "properties": {
        "auth": {
          "description": "The authorization mechanism that the proxy uses.",
          "items": {
            "description": "Specifies the details of authentication used by a proxy to log in as a specific\ndatabase user.",
            "properties": {
              "authScheme": {
                "type": "string"
              },
              "clientPasswordAuthType": {
                "type": "string"
              },
              "description": {
                "type": "string"
              },
              "iamAuth": {
                "type": "string"
              },
              "secretARN": {
                "type": "string"
              },
              "userName": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "debugLogging": {
          "description": "Specifies whether the proxy includes detailed information about SQL statements\nin its logs. This information helps you to debug issues involving SQL behavior\nor the performance and scalability of the proxy connections. The debug information\nincludes the text of SQL statements that you submit through the proxy. Thus,\nonly enable this setting when needed for debugging, and only when you have\nsecurity measures in place to safeguard any sensitive information that appears\nin the logs.",
          "type": "boolean"
        },
        "engineFamily": {
          "description": "The kinds of databases that the proxy can connect to. This value determines\nwhich database network protocol the proxy recognizes when it interprets network\ntraffic to and from the database. For Aurora MySQL, RDS for MariaDB, and\nRDS for MySQL databases, specify MYSQL. For Aurora PostgreSQL and RDS for\nPostgreSQL databases, specify POSTGRESQL. For RDS for Microsoft SQL Server,\nspecify SQLSERVER.",
          "type": "string"
        },
        "idleClientTimeout": {
          "description": "The number of seconds that a connection to the proxy can be inactive before\nthe proxy disconnects it. You can set this value higher or lower than the\nconnection timeout limit for the associated database.",
          "format": "int64",
          "type": "integer"
        },
        "name": {
          "description": "The identifier for the proxy. This name must be unique for all proxies owned\nby your Amazon Web Services account in the specified Amazon Web Services\nRegion. An identifier must begin with a letter and must contain only ASCII\nletters, digits, and hyphens; it can't end with a hyphen or contain two consecutive\nhyphens.",
          "type": "string"
        },
        "requireTLS": {
          "description": "Specifies whether Transport Layer Security (TLS) encryption is required for\nconnections to the proxy. By enabling this setting, you can enforce encrypted\nTLS connections to the proxy.",
          "type": "boolean"
        },
        "roleARN": {
          "description": "The Amazon Resource Name (ARN) of the IAM role that the proxy uses to access\nsecrets in Amazon Web Services Secrets Manager.",
          "type": "string"
        },
        "tags": {
          "description": "An optional set of key-value pairs to associate arbitrary data of your choosing\nwith the proxy.",
          "items": {
            "description": "Metadata assigned to an Amazon RDS resource consisting of a key-value pair.\n\nFor more information, see Tagging Amazon RDS resources (https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/USER_Tagging.html)\nin the Amazon RDS User Guide or Tagging Amazon Aurora and Amazon RDS resources\n(https://docs.aws.amazon.com/AmazonRDS/latest/AuroraUserGuide/USER_Tagging.html)\nin the Amazon Aurora User Guide.",
            "properties": {
              "key": {
                "type": "string"
              },
              "value": {
                "type": "string"
              }
            },
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "vpcSecurityGroupIDs": {
          "description": "One or more VPC security group IDs to associate with the new proxy.",
          "items": {
            "type": "string"
          },
          "type": "array"
        },
        "vpcSubnetIDs": {
          "description": "One or more VPC subnet IDs to associate with the new proxy.",
          "items": {
            "type": "string"
          },
          "type": "array"
        }
      },
      "required": [
        "auth",
        "engineFamily",
        "name",
        "roleARN",
        "vpcSubnetIDs"
      ],
      "type": "object",
      "additionalProperties": false
    },
    "status": {
      "description": "DBProxyStatus defines the observed state of DBProxy",
      "properties": {
        "ackResourceMetadata": {
          "description": "All CRs managed by ACK have a common `Status.ACKResourceMetadata` member\nthat is used to contain resource sync state, account ownership,\nconstructed ARN for the resource",
          "properties": {
            "arn": {
              "description": "ARN is the Amazon Resource Name for the resource. This is a\nglobally-unique identifier and is set only by the ACK service controller\nonce the controller has orchestrated the creation of the resource OR\nwhen it has verified that an \"adopted\" resource (a resource where the\nARN annotation was set by the Kubernetes user on the CR) exists and\nmatches the supplied CR's Spec field values.\nhttps://github.com/aws/aws-controllers-k8s/issues/270",
              "type": "string"
            },
            "ownerAccountID": {
              "description": "OwnerAccountID is the AWS Account ID of the account that owns the\nbackend AWS service API resource.",
              "type": "string"
            },
            "region": {
              "description": "Region is the AWS region in which the resource exists or will exist.",
              "type": "string"
            }
          },
          "required": [
            "ownerAccountID",
            "region"
          ],
          "type": "object",
          "additionalProperties": false
        },
        "conditions": {
          "description": "All CRs managed by ACK have a common `Status.Conditions` member that\ncontains a collection of `ackv1alpha1.Condition` objects that describe\nthe various terminal states of the CR and its backend AWS service API\nresource",
          "items": {
            "description": "Condition is the common struct used by all CRDs managed by ACK service\ncontrollers to indicate terminal states  of the CR and its backend AWS\nservice API resource",
            "properties": {
              "lastTransitionTime": {
                "description": "Last time the condition transitioned from one status to another.",
                "format": "date-time",
                "type": "string"
              },
              "message": {
                "description": "A human readable message indicating 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 is the type of the Condition",
                "type": "string"
              }
            },
            "required": [
              "status",
              "type"
            ],
            "type": "object",
            "additionalProperties": false
          },
          "type": "array"
        },
        "createdDate": {
          "description": "The date and time when the proxy was first created.",
          "format": "date-time",
          "type": "string"
        },
        "endpoint": {
          "description": "The endpoint that you can use to connect to the DB proxy. You include the\nendpoint value in the connection string for a database client application.",
          "type": "string"
        },
        "status": {
          "description": "The current status of this proxy. A status of available means the proxy is\nready to handle requests. Other values indicate that you must wait for the\nproxy to be ready, or take some action to resolve an issue.",
          "type": "string"
        },
        "updatedDate": {
          "description": "The date and time when the proxy was last updated.",
          "format": "date-time",
          "type": "string"
        },
        "vpcID": {
          "description": "Provides the VPC ID of the DB proxy.",
          "type": "string"
        }
      },
      "type": "object",
      "additionalProperties": false
    }
  },
  "type": "object"
}
