crd-awsiot.yaml 4.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157
  1. # Copyright (c) 2020 TriggerMesh Inc.
  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. apiVersion: apiextensions.k8s.io/v1
  15. kind: CustomResourceDefinition
  16. metadata:
  17. name: awsiotsources.sources.triggermesh.io
  18. labels:
  19. eventing.knative.dev/source: 'true'
  20. duck.knative.dev/source: 'true'
  21. knative.dev/crd-install: 'true'
  22. annotations:
  23. registry.knative.dev/eventTypes: |
  24. [
  25. { "type": "com.amazon.iot.greetings" }
  26. ]
  27. spec:
  28. group: sources.triggermesh.io
  29. scope: Namespaced
  30. names:
  31. kind: AWSIoTSource
  32. plural: awsiotsources
  33. categories:
  34. - all
  35. - knative
  36. - eventing
  37. - sources
  38. versions:
  39. - name: v1alpha1
  40. served: true
  41. storage: true
  42. subresources:
  43. status: {}
  44. schema:
  45. openAPIV3Schema:
  46. type: object
  47. properties:
  48. spec:
  49. type: object
  50. properties:
  51. endpoint:
  52. type: string
  53. format: hostname
  54. arn:
  55. type: string
  56. pattern: '^arn:aws(-cn|-us-gov)?:iot:[a-z]{2}(-gov)?-[a-z]+-\d:\d{12}:topic\/.+$'
  57. rootCA:
  58. type: string
  59. rootCAPath:
  60. type: string
  61. certificate:
  62. type: string
  63. certificatePath:
  64. type: string
  65. privateKey:
  66. type: string
  67. privateKeyPath:
  68. type: string
  69. sink:
  70. type: object
  71. properties:
  72. ref:
  73. type: object
  74. properties:
  75. apiVersion:
  76. type: string
  77. kind:
  78. type: string
  79. namespace:
  80. type: string
  81. name:
  82. type: string
  83. required:
  84. - apiVersion
  85. - kind
  86. - name
  87. uri:
  88. type: string
  89. format: uri
  90. oneOf:
  91. - required: ['ref']
  92. - required: ['uri']
  93. required:
  94. - endpoint
  95. - arn
  96. - rootCA
  97. - certificate
  98. - privateKey
  99. - sink
  100. status:
  101. type: object
  102. properties:
  103. sinkUri:
  104. type: string
  105. format: uri
  106. ceAttributes:
  107. type: array
  108. items:
  109. type: object
  110. properties:
  111. type:
  112. type: string
  113. source:
  114. type: string
  115. required:
  116. - type
  117. - source
  118. observedGeneration:
  119. type: integer
  120. format: int64
  121. conditions:
  122. type: array
  123. items:
  124. type: object
  125. properties:
  126. type:
  127. type: string
  128. status:
  129. type: string
  130. enum: ['True', 'False', Unknown]
  131. severity:
  132. type: string
  133. enum: [Error, Warning, Info]
  134. reason:
  135. type: string
  136. message:
  137. type: string
  138. lastTransitionTime:
  139. type: string
  140. format: date-time
  141. required:
  142. - type
  143. - status
  144. additionalPrinterColumns:
  145. - name: Ready
  146. type: string
  147. jsonPath: .status.conditions[?(@.type=='Ready')].status
  148. - name: Reason
  149. type: string
  150. jsonPath: .status.conditions[?(@.type=='Ready')].reason
  151. - name: Sink
  152. type: string
  153. jsonPath: .status.sinkUri
  154. - name: Age
  155. type: date
  156. jsonPath: .metadata.creationTimestamp