{ "$schema": "http://json-schema.org/schema#", "description": "Subscription is the Schema for the subscriptions 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": "SubscriptionSpec defines the desired state of Subscription", "properties": { "cluster": { "description": "The name of the PostgreSQL cluster that identifies the \"subscriber\"", "properties": { "name": { "default": "", "description": "Name of the referent.\nThis field is effectively required, but due to backwards compatibility is\nallowed to be empty. Instances of this type with an empty value here are\nalmost certainly wrong.\nMore info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names", "type": "string" } }, "type": "object", "x-kubernetes-map-type": "atomic" }, "dbname": { "description": "The name of the database where the publication will be installed in\nthe \"subscriber\" cluster", "type": "string", "x-kubernetes-validations": [ { "message": "dbname is immutable", "rule": "self == oldSelf" } ] }, "externalClusterName": { "description": "The name of the external cluster with the publication (\"publisher\")", "type": "string" }, "name": { "description": "The name of the subscription inside PostgreSQL", "type": "string", "x-kubernetes-validations": [ { "message": "name is immutable", "rule": "self == oldSelf" } ] }, "parameters": { "additionalProperties": { "type": "string" }, "description": "Subscription parameters included in the `WITH` clause of the PostgreSQL\n`CREATE SUBSCRIPTION` command. Most parameters cannot be changed\nafter the subscription is created and will be ignored if modified\nlater, except for a limited set documented at:\nhttps://www.postgresql.org/docs/current/sql-altersubscription.html#SQL-ALTERSUBSCRIPTION-PARAMS-SET", "type": "object" }, "publicationDBName": { "description": "The name of the database containing the publication on the external\ncluster. Defaults to the one in the external cluster definition.", "type": "string" }, "publicationName": { "description": "The name of the publication inside the PostgreSQL database in the\n\"publisher\"", "type": "string" }, "subscriptionReclaimPolicy": { "default": "retain", "description": "The policy for end-of-life maintenance of this subscription", "enum": [ "delete", "retain" ], "type": "string" } }, "required": [ "cluster", "dbname", "externalClusterName", "name", "publicationName" ], "type": "object" }, "status": { "description": "SubscriptionStatus defines the observed state of Subscription", "properties": { "applied": { "description": "Applied is true if the subscription was reconciled correctly", "type": "boolean" }, "message": { "description": "Message is the reconciliation output message", "type": "string" }, "observedGeneration": { "description": "A sequence number representing the latest\ndesired state that was synchronized", "format": "int64", "type": "integer" } }, "type": "object" } }, "required": [ "metadata", "spec" ], "type": "object" }