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