Files
dc-kc/schemas/messaging.knative.dev/subscription_v1.json
2025-04-08 22:07:34 +01:00

300 lines
15 KiB
JSON

{
"description": "Subscription routes events received on a Channel to a DNS name and corresponds to the subscriptions.channels.knative.dev CRD.",
"properties": {
"spec": {
"properties": {
"channel": {
"description": "Reference to a channel that will be used to create the subscription. You can specify only the following fields of the KReference: kind, apiVersion, name and namespace. The resource pointed by this KReference must meet the contract to the ChannelableSpec duck type. If the resource does not meet this contract it will be reflected in the Subscription's status. This field is immutable. We have no good answer on what happens to the events that are currently in the channel being consumed from and what the semantics there should be. For now, you can always delete the Subscription and recreate it to point to a different channel, giving the user more control over what semantics should be used (drain the channel first, possibly have events dropped, etc.)",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ This is optional field, it gets defaulted to the object holding it if left out.",
"type": "string"
}
},
"type": "object",
"x-kubernetes-preserve-unknown-fields": true,
"additionalProperties": false
},
"delivery": {
"description": "Delivery configuration",
"properties": {
"backoffDelay": {
"description": "BackoffDelay is the delay before retrying. More information on Duration format: - https://www.iso.org/iso-8601-date-and-time-format.html - https://en.wikipedia.org/wiki/ISO_8601 For linear policy, backoff delay is backoffDelay*<numberOfRetries>. For exponential policy, backoff delay is backoffDelay*2^<numberOfRetries>.",
"type": "string"
},
"backoffPolicy": {
"description": "BackoffPolicy is the retry backoff policy (linear, exponential).",
"type": "string"
},
"deadLetterSink": {
"description": "DeadLetterSink is the sink receiving event that could not be sent to a destination.",
"properties": {
"CACerts": {
"description": "Certification Authority (CA) certificates in PEM format that the source trusts when sending events to the sink.",
"type": "string"
},
"audience": {
"description": "Audience is the OIDC audience. This only needs to be set if the target is not an Addressable and thus the Audience can't be received from the target itself. If specified, it takes precedence over the target's Audience.",
"type": "string"
},
"ref": {
"description": "Ref points to an Addressable.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ This is optional field, it gets defaulted to the object holding it if left out.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"uri": {
"description": "URI can be an absolute URL(non-empty scheme and non-empty host) pointing to the target or a relative URI. Relative URIs will be resolved using the base URI retrieved from Ref.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"retry": {
"description": "Retry is the minimum number of retries the sender should attempt when sending an event before moving it to the dead letter sink.",
"format": "int32",
"type": "integer"
}
},
"type": "object",
"x-kubernetes-preserve-unknown-fields": true,
"additionalProperties": false
},
"reply": {
"description": "Reply specifies (optionally) how to handle events returned from the Subscriber target.",
"properties": {
"CACerts": {
"description": "Certification Authority (CA) certificates in PEM format that the source trusts when sending events to the sink.",
"type": "string"
},
"audience": {
"description": "Audience is the OIDC audience. This only needs to be set if the target is not an Addressable and thus the Audience can't be received from the target itself. If specified, it takes precedence over the target's Audience.",
"type": "string"
},
"ref": {
"description": "Ref points to an Addressable.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ This is optional field, it gets defaulted to the object holding it if left out.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"uri": {
"description": "URI can be an absolute URL(non-empty scheme and non-empty host) pointing to the target or a relative URI. Relative URIs will be resolved using the base URI retrieved from Ref.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
},
"subscriber": {
"description": "Subscriber is reference to (optional) function for processing events. Events from the Channel will be delivered here and replies are sent to a Destination as specified by the Reply.",
"properties": {
"CACerts": {
"description": "Certification Authority (CA) certificates in PEM format that the subscription trusts when sending events to the sink.",
"type": "string"
},
"audience": {
"description": "Audience is the OIDC audience. This only needs to be set if the target is not an Addressable and thus the Audience can't be received from the target itself. If specified, it takes precedence over the target's Audience.",
"type": "string"
},
"ref": {
"description": "Ref points to an Addressable.",
"properties": {
"apiVersion": {
"description": "API version of the referent.",
"type": "string"
},
"kind": {
"description": "Kind of the referent. More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds",
"type": "string"
},
"name": {
"description": "Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names",
"type": "string"
},
"namespace": {
"description": "Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/ This is optional field, it gets defaulted to the object holding it if left out.",
"type": "string"
}
},
"type": "object",
"x-kubernetes-preserve-unknown-fields": true,
"additionalProperties": false
},
"uri": {
"description": "URI can be an absolute URL(non-empty scheme and non-empty host) pointing to the target or a relative URI. Relative URIs will be resolved using the base URI retrieved from Ref.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object",
"additionalProperties": false
},
"status": {
"properties": {
"annotations": {
"description": "Annotations is additional Status fields for the Resource to save some additional State as well as convey more information to the user. This is roughly akin to Annotations on any k8s resource, just the reconciler conveying richer information outwards.",
"type": "object",
"x-kubernetes-preserve-unknown-fields": true
},
"auth": {
"description": "Auth provides the relevant information for OIDC authentication.",
"properties": {
"serviceAccountName": {
"description": "ServiceAccountName is the name of the generated service account used for this components OIDC authentication.",
"type": "string"
},
"serviceAccountNames": {
"description": "ServiceAccountNames is the list of names of the generated service accounts used for this components OIDC authentication.",
"items": {
"type": "string"
},
"type": "array"
}
},
"type": "object",
"additionalProperties": false
},
"conditions": {
"description": "Conditions the latest available observations of a resource's current state.",
"items": {
"properties": {
"lastTransitionTime": {
"description": "LastTransitionTime is the last time the condition transitioned from one status to another. We use VolatileTime in place of metav1.Time to exclude this from creating equality.Semantic differences (all other things held constant).",
"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"
},
"severity": {
"description": "Severity with which to treat failures of this type of condition. When this is not specified, it defaults to Error.",
"type": "string"
},
"status": {
"description": "Status of the condition, one of True, False, Unknown.",
"type": "string"
},
"type": {
"description": "Type of condition.",
"type": "string"
}
},
"required": [
"type",
"status"
],
"type": "object",
"additionalProperties": false
},
"type": "array"
},
"observedGeneration": {
"description": "ObservedGeneration is the 'Generation' of the Service that was last processed by the controller.",
"format": "int64",
"type": "integer"
},
"physicalSubscription": {
"description": "PhysicalSubscription is the fully resolved values that this Subscription represents.",
"properties": {
"deadLetterSinkAudience": {
"description": "OIDC audience of the dead letter sink.",
"type": "string"
},
"deadLetterSinkCACerts": {
"description": "Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.",
"type": "string"
},
"deadLetterSinkUri": {
"description": "ReplyURI is the fully resolved URI for the spec.delivery.deadLetterSink.",
"type": "string"
},
"replyAudience": {
"description": "ReplyAudience is the OIDC audience for the replyUri.",
"type": "string"
},
"replyCACerts": {
"description": "Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.",
"type": "string"
},
"replyUri": {
"description": "ReplyURI is the fully resolved URI for the spec.reply.",
"type": "string"
},
"subscriberAudience": {
"description": "SubscriberAudience is the OIDC audience for the subscriberUri.",
"type": "string"
},
"subscriberCACerts": {
"description": "Certification Authority (CA) certificates in PEM format according to https://www.rfc-editor.org/rfc/rfc7468.",
"type": "string"
},
"subscriberUri": {
"description": "SubscriberURI is the fully resolved URI for spec.subscriber.",
"type": "string"
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object",
"additionalProperties": false
}
},
"type": "object"
}