/
zz_channel_types.go
executable file
·264 lines (206 loc) · 12.3 KB
/
zz_channel_types.go
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
// SPDX-FileCopyrightText: 2023 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
/*
Copyright 2024 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1alpha1
import (
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
"k8s.io/apimachinery/pkg/runtime/schema"
v1 "github.com/crossplane/crossplane-runtime/apis/common/v1"
)
type ChannelInitParameters struct {
// Determines the New Relic account where the notification channel will be created. Defaults to the account associated with the API key used.
// The account id of the channel.
AccountID *float64 `json:"accountId,omitempty" tf:"account_id,omitempty"`
// Indicates whether the channel is active.
Active *bool `json:"active,omitempty" tf:"active,omitempty"`
// The id of the destination.
// (Required) The id of the destination.
// +crossplane:generate:reference:type=github.com/crossplane-contrib/crossplane-provider-newrelic/apis/alert/v1alpha1.Destination
DestinationID *string `json:"destinationId,omitempty" tf:"destination_id,omitempty"`
// Reference to a Destination in alert to populate destinationId.
// +kubebuilder:validation:Optional
DestinationIDRef *v1.Reference `json:"destinationIdRef,omitempty" tf:"-"`
// Selector for a Destination in alert to populate destinationId.
// +kubebuilder:validation:Optional
DestinationIDSelector *v1.Selector `json:"destinationIdSelector,omitempty" tf:"-"`
// The name of the channel.
// (Required) The name of the channel.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The type of product. One of: DISCUSSIONS, ERROR_TRACKING or IINT (workflows).
// (Required) The type of the channel product. One of: (DISCUSSIONS, ERROR_TRACKING, IINT).
Product *string `json:"product,omitempty" tf:"product,omitempty"`
// A nested block that describes a notification channel property. See Nested property blocks below for details.
// Notification channel property type.
Property []PropertyInitParameters `json:"property,omitempty" tf:"property,omitempty"`
// The type of channel. One of: EMAIL, SERVICENOW_INCIDENTS, WEBHOOK, JIRA_CLASSIC, MOBILE_PUSH, EVENT_BRIDGE, SLACK and SLACK_COLLABORATION, PAGERDUTY_ACCOUNT_INTEGRATION or PAGERDUTY_SERVICE_INTEGRATION.
// (Required) The type of the channel. One of: (WEBHOOK, EMAIL, SERVICENOW_INCIDENTS, PAGERDUTY_ACCOUNT_INTEGRATION, PAGERDUTY_SERVICE_INTEGRATION, JIRA_CLASSIC, SLACK, SLACK_COLLABORATION, SLACK_LEGACY, MOBILE_PUSH, EVENT_BRIDGE).
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
type ChannelObservation struct {
// Determines the New Relic account where the notification channel will be created. Defaults to the account associated with the API key used.
// The account id of the channel.
AccountID *float64 `json:"accountId,omitempty" tf:"account_id,omitempty"`
// Indicates whether the channel is active.
Active *bool `json:"active,omitempty" tf:"active,omitempty"`
// The id of the destination.
// (Required) The id of the destination.
DestinationID *string `json:"destinationId,omitempty" tf:"destination_id,omitempty"`
// The ID of the channel.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// The name of the channel.
// (Required) The name of the channel.
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The type of product. One of: DISCUSSIONS, ERROR_TRACKING or IINT (workflows).
// (Required) The type of the channel product. One of: (DISCUSSIONS, ERROR_TRACKING, IINT).
Product *string `json:"product,omitempty" tf:"product,omitempty"`
// A nested block that describes a notification channel property. See Nested property blocks below for details.
// Notification channel property type.
Property []PropertyObservation `json:"property,omitempty" tf:"property,omitempty"`
// The status of the channel.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// The type of channel. One of: EMAIL, SERVICENOW_INCIDENTS, WEBHOOK, JIRA_CLASSIC, MOBILE_PUSH, EVENT_BRIDGE, SLACK and SLACK_COLLABORATION, PAGERDUTY_ACCOUNT_INTEGRATION or PAGERDUTY_SERVICE_INTEGRATION.
// (Required) The type of the channel. One of: (WEBHOOK, EMAIL, SERVICENOW_INCIDENTS, PAGERDUTY_ACCOUNT_INTEGRATION, PAGERDUTY_SERVICE_INTEGRATION, JIRA_CLASSIC, SLACK, SLACK_COLLABORATION, SLACK_LEGACY, MOBILE_PUSH, EVENT_BRIDGE).
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
type ChannelParameters struct {
// Determines the New Relic account where the notification channel will be created. Defaults to the account associated with the API key used.
// The account id of the channel.
// +kubebuilder:validation:Optional
AccountID *float64 `json:"accountId,omitempty" tf:"account_id,omitempty"`
// Indicates whether the channel is active.
// +kubebuilder:validation:Optional
Active *bool `json:"active,omitempty" tf:"active,omitempty"`
// The id of the destination.
// (Required) The id of the destination.
// +crossplane:generate:reference:type=github.com/crossplane-contrib/crossplane-provider-newrelic/apis/alert/v1alpha1.Destination
// +kubebuilder:validation:Optional
DestinationID *string `json:"destinationId,omitempty" tf:"destination_id,omitempty"`
// Reference to a Destination in alert to populate destinationId.
// +kubebuilder:validation:Optional
DestinationIDRef *v1.Reference `json:"destinationIdRef,omitempty" tf:"-"`
// Selector for a Destination in alert to populate destinationId.
// +kubebuilder:validation:Optional
DestinationIDSelector *v1.Selector `json:"destinationIdSelector,omitempty" tf:"-"`
// The name of the channel.
// (Required) The name of the channel.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty" tf:"name,omitempty"`
// The type of product. One of: DISCUSSIONS, ERROR_TRACKING or IINT (workflows).
// (Required) The type of the channel product. One of: (DISCUSSIONS, ERROR_TRACKING, IINT).
// +kubebuilder:validation:Optional
Product *string `json:"product,omitempty" tf:"product,omitempty"`
// A nested block that describes a notification channel property. See Nested property blocks below for details.
// Notification channel property type.
// +kubebuilder:validation:Optional
Property []PropertyParameters `json:"property,omitempty" tf:"property,omitempty"`
// The type of channel. One of: EMAIL, SERVICENOW_INCIDENTS, WEBHOOK, JIRA_CLASSIC, MOBILE_PUSH, EVENT_BRIDGE, SLACK and SLACK_COLLABORATION, PAGERDUTY_ACCOUNT_INTEGRATION or PAGERDUTY_SERVICE_INTEGRATION.
// (Required) The type of the channel. One of: (WEBHOOK, EMAIL, SERVICENOW_INCIDENTS, PAGERDUTY_ACCOUNT_INTEGRATION, PAGERDUTY_SERVICE_INTEGRATION, JIRA_CLASSIC, SLACK, SLACK_COLLABORATION, SLACK_LEGACY, MOBILE_PUSH, EVENT_BRIDGE).
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
type PropertyInitParameters struct {
// The notification property display value.
// Notification property display key.
DisplayValue *string `json:"displayValue,omitempty" tf:"display_value,omitempty"`
// The notification property key.
// Notification property key.
Key *string `json:"key,omitempty" tf:"key,omitempty"`
// The notification property label.
// Notification property label.
Label *string `json:"label,omitempty" tf:"label,omitempty"`
// The notification property value.
// Notification property value.
Value *string `json:"value,omitempty" tf:"value,omitempty"`
}
type PropertyObservation struct {
// The notification property display value.
// Notification property display key.
DisplayValue *string `json:"displayValue,omitempty" tf:"display_value,omitempty"`
// The notification property key.
// Notification property key.
Key *string `json:"key,omitempty" tf:"key,omitempty"`
// The notification property label.
// Notification property label.
Label *string `json:"label,omitempty" tf:"label,omitempty"`
// The notification property value.
// Notification property value.
Value *string `json:"value,omitempty" tf:"value,omitempty"`
}
type PropertyParameters struct {
// The notification property display value.
// Notification property display key.
// +kubebuilder:validation:Optional
DisplayValue *string `json:"displayValue,omitempty" tf:"display_value,omitempty"`
// The notification property key.
// Notification property key.
// +kubebuilder:validation:Optional
Key *string `json:"key" tf:"key,omitempty"`
// The notification property label.
// Notification property label.
// +kubebuilder:validation:Optional
Label *string `json:"label,omitempty" tf:"label,omitempty"`
// The notification property value.
// Notification property value.
// +kubebuilder:validation:Optional
Value *string `json:"value" tf:"value,omitempty"`
}
// ChannelSpec defines the desired state of Channel
type ChannelSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider ChannelParameters `json:"forProvider"`
// THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
InitProvider ChannelInitParameters `json:"initProvider,omitempty"`
}
// ChannelStatus defines the observed state of Channel.
type ChannelStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider ChannelObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Channel is the Schema for the Channels API. Create and manage a notification channel for notifications in New Relic.
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].status"
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="EXTERNAL-NAME",type="string",JSONPath=".metadata.annotations.crossplane\\.io/external-name"
// +kubebuilder:printcolumn:name="AGE",type="date",JSONPath=".metadata.creationTimestamp"
// +kubebuilder:subresource:status
// +kubebuilder:resource:scope=Cluster,categories={crossplane,managed,newrelic}
type Channel struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.name) || (has(self.initProvider) && has(self.initProvider.name))",message="spec.forProvider.name is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.product) || (has(self.initProvider) && has(self.initProvider.product))",message="spec.forProvider.product is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.property) || (has(self.initProvider) && has(self.initProvider.property))",message="spec.forProvider.property is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter"
Spec ChannelSpec `json:"spec"`
Status ChannelStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// ChannelList contains a list of Channels
type ChannelList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Channel `json:"items"`
}
// Repository type metadata.
var (
Channel_Kind = "Channel"
Channel_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Channel_Kind}.String()
Channel_KindAPIVersion = Channel_Kind + "." + CRDGroupVersion.String()
Channel_GroupVersionKind = CRDGroupVersion.WithKind(Channel_Kind)
)
func init() {
SchemeBuilder.Register(&Channel{}, &ChannelList{})
}