1---
2apiVersion: apiextensions.k8s.io/v1
3kind: CustomResourceDefinition
4metadata:
5 annotations:
6 controller-gen.kubebuilder.io/version: (unknown)
7 name: pubsubsubscriptions.pubsub.cnrm.cloud.google.com
8spec:
9 group: pubsub.cnrm.cloud.google.com
10 names:
11 kind: PubSubSubscription
12 listKind: PubSubSubscriptionList
13 plural: pubsubsubscriptions
14 singular: pubsubsubscription
15 scope: Namespaced
16 versions:
17 - name: v1beta1
18 schema:
19 openAPIV3Schema:
20 description: PubSubSubscription is the Schema for the pubsub API
21 properties:
22 apiVersion:
23 description: |-
24 APIVersion defines the versioned schema of this representation of an object.
25 Servers should convert recognized schemas to the latest internal value, and
26 may reject unrecognized values.
27 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#resources
28 type: string
29 kind:
30 description: |-
31 Kind is a string value representing the REST resource this object represents.
32 Servers may infer this from the endpoint the client submits requests to.
33 Cannot be updated.
34 In CamelCase.
35 More info: https://git.k8s.io/community/contributors/devel/sig-architecture/api-conventions.md#types-kinds
36 type: string
37 metadata:
38 type: object
39 spec:
40 properties:
41 ackDeadlineSeconds:
42 description: |-
43 This value is the maximum time after a subscriber receives a message
44 before the subscriber should acknowledge the message. After message
45 delivery but before the ack deadline expires and before the message is
46 acknowledged, it is an outstanding message and will not be delivered
47 again during that time (on a best-effort basis).
48
49
50 For pull subscriptions, this value is used as the initial value for
51 the ack deadline. To override this value for a given message, call
52 subscriptions.modifyAckDeadline with the corresponding ackId if using
53 pull. The minimum custom deadline you can specify is 10 seconds. The
54 maximum custom deadline you can specify is 600 seconds (10 minutes).
55 If this parameter is 0, a default value of 10 seconds is used.
56
57
58 For push delivery, this value is also used to set the request timeout
59 for the call to the push endpoint.
60
61
62 If the subscriber never acknowledges the message, the Pub/Sub system
63 will eventually redeliver the message.
64 type: integer
65 bigqueryConfig:
66 description: |-
67 If delivery to BigQuery is used with this subscription, this field is used to configure it.
68 Either pushConfig or bigQueryConfig can be set, but not both.
69 If both are empty, then the subscriber will pull and ack messages using API methods.
70 properties:
71 dropUnknownFields:
72 description: |-
73 When true and useTopicSchema is true, any fields that are a part of the topic schema that are not part of the BigQuery table schema are dropped when writing to BigQuery.
74 Otherwise, the schemas must be kept in sync and any messages with extra fields are not written and remain in the subscription's backlog.
75 type: boolean
76 tableRef:
77 description: The name of the table to which to write data.
78 properties:
79 external:
80 description: The external name of the referenced resource
81 type: string
82 kind:
83 description: Kind of the referent.
84 type: string
85 name:
86 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
87 type: string
88 namespace:
89 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
90 type: string
91 type: object
92 useTopicSchema:
93 description: When true, use the topic's schema as the columns
94 to write to in BigQuery, if it exists.
95 type: boolean
96 writeMetadata:
97 description: |-
98 When true, write the subscription name, messageId, publishTime, attributes, and orderingKey to additional columns in the table.
99 The subscription name, messageId, and publishTime fields are put in their own columns while all other message properties (other than data) are written to a JSON object in the attributes column.
100 type: boolean
101 required:
102 - tableRef
103 type: object
104 deadLetterPolicy:
105 description: |-
106 A policy that specifies the conditions for dead lettering messages in
107 this subscription. If dead_letter_policy is not set, dead lettering
108 is disabled.
109
110
111 The Cloud Pub/Sub service account associated with this subscription's
112 parent project (i.e.,
113 service-{project_number}@gcp-sa-pubsub.iam.gserviceaccount.com) must have
114 permission to Acknowledge() messages on this subscription.
115 properties:
116 deadLetterTopicRef:
117 properties:
118 external:
119 description: The external name of the referenced resource
120 type: string
121 kind:
122 description: Kind of the referent.
123 type: string
124 name:
125 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
126 type: string
127 namespace:
128 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
129 type: string
130 type: object
131 maxDeliveryAttempts:
132 description: |-
133 The maximum number of delivery attempts for any message. The value must be
134 between 5 and 100.
135
136
137 The number of delivery attempts is defined as 1 + (the sum of number of
138 NACKs and number of times the acknowledgement deadline has been exceeded for the message).
139
140
141 A NACK is any call to ModifyAckDeadline with a 0 deadline. Note that
142 client libraries may automatically extend ack_deadlines.
143
144
145 This field will be honored on a best effort basis.
146
147
148 If this parameter is 0, a default value of 5 is used.
149 type: integer
150 type: object
151 enableExactlyOnceDelivery:
152 description: |-
153 If 'true', Pub/Sub provides the following guarantees for the delivery
154 of a message with a given value of messageId on this Subscriptions':
155
156
157 - The message sent to a subscriber is guaranteed not to be resent before the message's acknowledgement deadline expires.
158
159
160 - An acknowledged message will not be resent to a subscriber.
161
162
163 Note that subscribers may still receive multiple copies of a message when 'enable_exactly_once_delivery'
164 is true if the message was published multiple times by a publisher client. These copies are considered distinct by Pub/Sub and have distinct messageId values.
165 type: boolean
166 enableMessageOrdering:
167 description: |-
168 Immutable. If 'true', messages published with the same orderingKey in PubsubMessage will be delivered to
169 the subscribers in the order in which they are received by the Pub/Sub system. Otherwise, they
170 may be delivered in any order.
171 type: boolean
172 expirationPolicy:
173 description: |-
174 A policy that specifies the conditions for this subscription's expiration.
175 A subscription is considered active as long as any connected subscriber
176 is successfully consuming messages from the subscription or is issuing
177 operations on the subscription. If expirationPolicy is not set, a default
178 policy with ttl of 31 days will be used. If it is set but ttl is "", the
179 resource never expires. The minimum allowed value for expirationPolicy.ttl
180 is 1 day.
181 properties:
182 ttl:
183 description: |-
184 Specifies the "time-to-live" duration for an associated resource. The
185 resource expires if it is not active for a period of ttl.
186 If ttl is set to "", the associated resource never expires.
187 A duration in seconds with up to nine fractional digits, terminated by 's'.
188 Example - "3.5s".
189 type: string
190 required:
191 - ttl
192 type: object
193 filter:
194 description: |-
195 Immutable. The subscription only delivers the messages that match the filter.
196 Pub/Sub automatically acknowledges the messages that don't match the filter. You can filter messages
197 by their attributes. The maximum length of a filter is 256 bytes. After creating the subscription,
198 you can't modify the filter.
199 type: string
200 messageRetentionDuration:
201 description: |-
202 How long to retain unacknowledged messages in the subscription's
203 backlog, from the moment a message is published. If
204 retain_acked_messages is true, then this also configures the retention
205 of acknowledged messages, and thus configures how far back in time a
206 subscriptions.seek can be done. Defaults to 7 days. Cannot be more
207 than 7 days ('"604800s"') or less than 10 minutes ('"600s"').
208
209
210 A duration in seconds with up to nine fractional digits, terminated
211 by 's'. Example: '"600.5s"'.
212 type: string
213 pushConfig:
214 description: |-
215 If push delivery is used with this subscription, this field is used to
216 configure it. An empty pushConfig signifies that the subscriber will
217 pull and ack messages using API methods.
218 properties:
219 attributes:
220 additionalProperties:
221 type: string
222 description: |-
223 Endpoint configuration attributes.
224
225
226 Every endpoint has a set of API supported attributes that can
227 be used to control different aspects of the message delivery.
228
229
230 The currently supported attribute is x-goog-version, which you
231 can use to change the format of the pushed message. This
232 attribute indicates the version of the data expected by
233 the endpoint. This controls the shape of the pushed message
234 (i.e., its fields and metadata). The endpoint version is
235 based on the version of the Pub/Sub API.
236
237
238 If not present during the subscriptions.create call,
239 it will default to the version of the API used to make
240 such call. If not present during a subscriptions.modifyPushConfig
241 call, its value will not be changed. subscriptions.get
242 calls will always return a valid version, even if the
243 subscription was created without this attribute.
244
245
246 The possible values for this attribute are:
247
248
249 - v1beta1: uses the push format defined in the v1beta1 Pub/Sub API.
250 - v1 or v1beta2: uses the push format defined in the v1 Pub/Sub API.
251 type: object
252 oidcToken:
253 description: |-
254 If specified, Pub/Sub will generate and attach an OIDC JWT token as
255 an Authorization header in the HTTP request for every pushed message.
256 properties:
257 audience:
258 description: |-
259 Audience to be used when generating OIDC token. The audience claim
260 identifies the recipients that the JWT is intended for. The audience
261 value is a single case-sensitive string. Having multiple values (array)
262 for the audience field is not supported. More info about the OIDC JWT
263 token audience here: https://tools.ietf.org/html/rfc7519#section-4.1.3
264 Note: if not specified, the Push endpoint URL will be used.
265 type: string
266 serviceAccountEmail:
267 description: |-
268 Service account email to be used for generating the OIDC token.
269 The caller (for subscriptions.create, subscriptions.patch, and
270 subscriptions.modifyPushConfig RPCs) must have the
271 iam.serviceAccounts.actAs permission for the service account.
272 type: string
273 required:
274 - serviceAccountEmail
275 type: object
276 pushEndpoint:
277 description: |-
278 A URL locating the endpoint to which messages should be pushed.
279 For example, a Webhook endpoint might use
280 "https://example.com/push".
281 type: string
282 required:
283 - pushEndpoint
284 type: object
285 resourceID:
286 description: Immutable. Optional. The name of the resource. Used for
287 creation and acquisition. When unset, the value of `metadata.name`
288 is used as the default.
289 type: string
290 retainAckedMessages:
291 description: |-
292 Indicates whether to retain acknowledged messages. If 'true', then
293 messages are not expunged from the subscription's backlog, even if
294 they are acknowledged, until they fall out of the
295 messageRetentionDuration window.
296 type: boolean
297 retryPolicy:
298 description: |-
299 A policy that specifies how Pub/Sub retries message delivery for this subscription.
300
301
302 If not set, the default retry policy is applied. This generally implies that messages will be retried as soon as possible for healthy subscribers.
303 RetryPolicy will be triggered on NACKs or acknowledgement deadline exceeded events for a given message.
304 properties:
305 maximumBackoff:
306 description: |-
307 The maximum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 600 seconds.
308 A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
309 type: string
310 minimumBackoff:
311 description: |-
312 The minimum delay between consecutive deliveries of a given message. Value should be between 0 and 600 seconds. Defaults to 10 seconds.
313 A duration in seconds with up to nine fractional digits, terminated by 's'. Example: "3.5s".
314 type: string
315 type: object
316 topicRef:
317 description: Reference to a PubSubTopic.
318 properties:
319 external:
320 description: The external name of the referenced resource
321 type: string
322 kind:
323 description: Kind of the referent.
324 type: string
325 name:
326 description: 'Name of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/names/#names'
327 type: string
328 namespace:
329 description: 'Namespace of the referent. More info: https://kubernetes.io/docs/concepts/overview/working-with-objects/namespaces/'
330 type: string
331 type: object
332 required:
333 - topicRef
334 type: object
335 status:
336 properties:
337 conditions:
338 description: |-
339 Conditions represent the latest available observations of the
340 PubSubSubscription's current state.
341 items:
342 properties:
343 lastTransitionTime:
344 description: Last time the condition transitioned from one status
345 to another.
346 type: string
347 message:
348 description: Human-readable message indicating details about
349 last transition.
350 type: string
351 reason:
352 description: |-
353 Unique, one-word, CamelCase reason for the condition's last
354 transition.
355 type: string
356 status:
357 description: Status is the status of the condition. Can be True,
358 False, Unknown.
359 type: string
360 type:
361 description: Type is the type of the condition.
362 type: string
363 type: object
364 type: array
365 observedGeneration:
366 description: ObservedGeneration is the generation of the resource
367 that was most recently observed by the Config Connector controller.
368 If this is equal to metadata.generation, then that means that the
369 current reported status reflects the most recent desired state of
370 the resource.
371 type: integer
372 type: object
373 type: object
374 served: true
375 storage: true
View as plain text