-
Notifications
You must be signed in to change notification settings - Fork 113
/
zz_notificationrule_types.go
executable file
·153 lines (118 loc) · 6.14 KB
/
zz_notificationrule_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
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1beta1
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 NotificationRuleObservation struct {
// The codestar notification rule ARN.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// The codestar notification rule ARN.
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// A map of tags assigned to the resource, including those inherited from the provider default_tags configuration block.
TagsAll map[string]*string `json:"tagsAll,omitempty" tf:"tags_all,omitempty"`
// Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation.
// +kubebuilder:validation:Optional
Target []TargetObservation `json:"target,omitempty" tf:"target,omitempty"`
}
type NotificationRuleParameters struct {
// The level of detail to include in the notifications for this resource. Possible values are BASIC and FULL.
// +kubebuilder:validation:Required
DetailType *string `json:"detailType" tf:"detail_type,omitempty"`
// A list of event types associated with this notification rule.
// For list of allowed events see here.
// +kubebuilder:validation:Required
EventTypeIds []*string `json:"eventTypeIds" tf:"event_type_ids,omitempty"`
// The name of notification rule.
// +kubebuilder:validation:Required
Name *string `json:"name" tf:"name,omitempty"`
// Region is the region you'd like your resource to be created in.
// +upjet:crd:field:TFTag=-
// +kubebuilder:validation:Required
Region *string `json:"region" tf:"-"`
// The ARN of the resource to associate with the notification rule.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/codecommit/v1beta1.Repository
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractParamPath("arn",true)
// +kubebuilder:validation:Optional
Resource *string `json:"resource,omitempty" tf:"resource,omitempty"`
// Reference to a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceRef *v1.Reference `json:"resourceRef,omitempty" tf:"-"`
// Selector for a Repository in codecommit to populate resource.
// +kubebuilder:validation:Optional
ResourceSelector *v1.Selector `json:"resourceSelector,omitempty" tf:"-"`
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
// +kubebuilder:validation:Optional
Status *string `json:"status,omitempty" tf:"status,omitempty"`
// Key-value map of resource tags.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// Configuration blocks containing notification target information. Can be specified multiple times. At least one target must be specified on creation.
// +kubebuilder:validation:Optional
Target []TargetParameters `json:"target,omitempty" tf:"target,omitempty"`
}
type TargetObservation struct {
// The status of the notification rule. Possible values are ENABLED and DISABLED, default is ENABLED.
Status *string `json:"status,omitempty" tf:"status,omitempty"`
}
type TargetParameters struct {
// The ARN of notification rule target. For example, a SNS Topic ARN.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/sns/v1beta1.Topic
// +crossplane:generate:reference:extractor=github.com/upbound/upjet/pkg/resource.ExtractParamPath("arn",true)
// +kubebuilder:validation:Optional
Address *string `json:"address,omitempty" tf:"address,omitempty"`
// Reference to a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressRef *v1.Reference `json:"addressRef,omitempty" tf:"-"`
// Selector for a Topic in sns to populate address.
// +kubebuilder:validation:Optional
AddressSelector *v1.Selector `json:"addressSelector,omitempty" tf:"-"`
// The type of the notification target. Default value is SNS.
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
// NotificationRuleSpec defines the desired state of NotificationRule
type NotificationRuleSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider NotificationRuleParameters `json:"forProvider"`
}
// NotificationRuleStatus defines the observed state of NotificationRule.
type NotificationRuleStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider NotificationRuleObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// NotificationRule is the Schema for the NotificationRules API. Provides a CodeStar Notifications Rule
// +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,aws}
type NotificationRule struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec NotificationRuleSpec `json:"spec"`
Status NotificationRuleStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// NotificationRuleList contains a list of NotificationRules
type NotificationRuleList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []NotificationRule `json:"items"`
}
// Repository type metadata.
var (
NotificationRule_Kind = "NotificationRule"
NotificationRule_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: NotificationRule_Kind}.String()
NotificationRule_KindAPIVersion = NotificationRule_Kind + "." + CRDGroupVersion.String()
NotificationRule_GroupVersionKind = CRDGroupVersion.WithKind(NotificationRule_Kind)
)
func init() {
SchemeBuilder.Register(&NotificationRule{}, &NotificationRuleList{})
}