/
environmentec2_types.go
104 lines (78 loc) · 4.9 KB
/
environmentec2_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
/*
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"
)
// EnvironmentEC2Spec defines the desired state of EnvironmentEC2
type EnvironmentEC2Spec struct {
metav1alpha1.CloudFormationMeta `json:",inline"`
// AutomaticStopTimeMinutes http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-automaticstoptimeminutes
AutomaticStopTimeMinutes int `json:"automaticStopTimeMinutes,omitempty" cloudformation:"AutomaticStopTimeMinutes,Parameter"`
// Description http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-description
Description string `json:"description,omitempty" cloudformation:"Description,Parameter"`
// InstanceType http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-instancetype
InstanceType string `json:"instanceType,omitempty" cloudformation:"InstanceType,Parameter"`
// Name http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-name
Name string `json:"name,omitempty" cloudformation:"Name,Parameter"`
// OwnerRef http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-ownerarn
OwnerRef metav1alpha1.ObjectReference `json:"ownerRef,omitempty" cloudformation:"OwnerArn,Parameter"`
// Repositories http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-repositories
Repositories []EnvironmentEC2_Repository `json:"repositories,omitempty" cloudformation:"Repositories"`
// SubnetRef http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html#cfn-cloud9-environmentec2-subnetid
SubnetRef metav1alpha1.ObjectReference `json:"subnetRef,omitempty" cloudformation:"SubnetId,Parameter"`
}
// EnvironmentEC2_Repository defines the desired state of EnvironmentEC2Repository
type EnvironmentEC2_Repository struct {
// PathComponent http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-pathcomponent
PathComponent string `json:"pathComponent,omitempty" cloudformation:"PathComponent,Parameter"`
// RepositoryUrl http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-properties-cloud9-environmentec2-repository.html#cfn-cloud9-environmentec2-repository-repositoryurl
RepositoryUrl string `json:"repositoryUrl,omitempty" cloudformation:"RepositoryUrl,Parameter"`
}
// EnvironmentEC2Status defines the observed state of EnvironmentEC2
type EnvironmentEC2Status struct {
metav1alpha1.StatusMeta `json:",inline"`
}
// EnvironmentEC2Output defines the stack outputs
type EnvironmentEC2Output struct {
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-cloud9-environmentec2.html
Ref string `json:"ref,omitempty"`
// Arn defines the Arn
Arn string `json:"arn,omitempty" cloudformation:"Arn,Output"`
// Name defines the Name
Name string `json:"name,omitempty" cloudformation:"Name,Output"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:resource:categories=aws;cloud9
// +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
// EnvironmentEC2 is the Schema for the cloud9 EnvironmentEC2 API
type EnvironmentEC2 struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec EnvironmentEC2Spec `json:"spec,omitempty"`
Status EnvironmentEC2Status `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// EnvironmentEC2List contains a list of Account
type EnvironmentEC2List struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []EnvironmentEC2 `json:"items"`
}
func init() {
SchemeBuilder.Register(&EnvironmentEC2{}, &EnvironmentEC2List{})
}