/
hostedzone_types.go
116 lines (89 loc) · 5.62 KB
/
hostedzone_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
/*
Copyright © 2019 AWS Controller authors
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
*/
package v1alpha1
import (
metav1alpha1 "go.awsctrl.io/manager/apis/meta/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// HostedZoneSpec defines the desired state of HostedZone
type HostedZoneSpec struct {
metav1alpha1.CloudFormationMeta `json:",inline"`
// HostedZoneConfig http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzoneconfig
HostedZoneConfig HostedZone_HostedZoneConfig `json:"hostedZoneConfig,omitempty" cloudformation:"HostedZoneConfig"`
// HostedZoneTags http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-hostedzonetags
HostedZoneTags []HostedZone_HostedZoneTag `json:"hostedZoneTags,omitempty" cloudformation:"HostedZoneTags"`
// Name http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-name
Name string `json:"name,omitempty" cloudformation:"Name,Parameter"`
// QueryLoggingConfig http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-queryloggingconfig
QueryLoggingConfig HostedZone_QueryLoggingConfig `json:"queryLoggingConfig,omitempty" cloudformation:"QueryLoggingConfig"`
// VPCs http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html#cfn-route53-hostedzone-vpcs
VPCs []HostedZone_VPC `json:"vPCs,omitempty" cloudformation:"VPCs"`
}
// HostedZone_HostedZoneConfig defines the desired state of HostedZoneHostedZoneConfig
type HostedZone_HostedZoneConfig struct {
// Comment http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzoneconfig.html#cfn-route53-hostedzone-hostedzoneconfig-comment
Comment string `json:"comment,omitempty" cloudformation:"Comment,Parameter"`
}
// HostedZone_HostedZoneTag defines the desired state of HostedZoneHostedZoneTag
type HostedZone_HostedZoneTag struct {
// Key http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html#cfn-route53-hostedzonetags-key
Key string `json:"key,omitempty" cloudformation:"Key,Parameter"`
// Value http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-hostedzonetags.html#cfn-route53-hostedzonetags-value
Value string `json:"value,omitempty" cloudformation:"Value,Parameter"`
}
// HostedZone_QueryLoggingConfig defines the desired state of HostedZoneQueryLoggingConfig
type HostedZone_QueryLoggingConfig struct {
// CloudWatchLogsLogGroupRef http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-route53-hostedzone-queryloggingconfig.html#cfn-route53-hostedzone-queryloggingconfig-cloudwatchlogsloggrouparn
CloudWatchLogsLogGroupRef metav1alpha1.ObjectReference `json:"cloudWatchLogsLogGroupRef,omitempty" cloudformation:"CloudWatchLogsLogGroupArn,Parameter"`
}
// HostedZone_VPC defines the desired state of HostedZoneVPC
type HostedZone_VPC struct {
// VPCRef http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html#cfn-route53-hostedzone-hostedzonevpcs-vpcid
VPCRef metav1alpha1.ObjectReference `json:"vPCRef,omitempty" cloudformation:"VPCId,Parameter"`
// VPCRegion http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone-hostedzonevpcs.html#cfn-route53-hostedzone-hostedzonevpcs-vpcregion
VPCRegion string `json:"vPCRegion,omitempty" cloudformation:"VPCRegion,Parameter"`
}
// HostedZoneStatus defines the observed state of HostedZone
type HostedZoneStatus struct {
metav1alpha1.StatusMeta `json:",inline"`
}
// HostedZoneOutput defines the stack outputs
type HostedZoneOutput struct {
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-route53-hostedzone.html
Ref string `json:"ref,omitempty"`
// NameServers defines the NameServers
NameServers string `json:"nameServers,omitempty" cloudformation:"NameServers,Output"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:resource:categories=aws;route53
// +kubebuilder:printcolumn:JSONPath=.status.status,description="status of the stack",name=Status,priority=0,type=string
// +kubebuilder:printcolumn:JSONPath=.status.message,description="reason for the stack status",name=Message,priority=1,type=string
// +kubebuilder:printcolumn:JSONPath=.status.stackID,description="CloudFormation Stack ID",name=StackID,priority=2,type=string
// HostedZone is the Schema for the route53 HostedZone API
type HostedZone struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec HostedZoneSpec `json:"spec,omitempty"`
Status HostedZoneStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// HostedZoneList contains a list of Account
type HostedZoneList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []HostedZone `json:"items"`
}
func init() {
SchemeBuilder.Register(&HostedZone{}, &HostedZoneList{})
}