/
instanceprofile_types.go
80 lines (61 loc) · 3.08 KB
/
instanceprofile_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
/*
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"
)
// InstanceProfileSpec defines the desired state of InstanceProfile
type InstanceProfileSpec struct {
metav1alpha1.CloudFormationMeta `json:",inline"`
// InstanceProfileName http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-instanceprofilename
InstanceProfileName string `json:"instanceProfileName,omitempty" cloudformation:"InstanceProfileName,Parameter"`
// Path http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-path
Path string `json:"path,omitempty" cloudformation:"Path,Parameter"`
// Roles http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html#cfn-iam-instanceprofile-roles
Roles []string `json:"roles,omitempty" cloudformation:"Roles"`
}
// InstanceProfileStatus defines the observed state of InstanceProfile
type InstanceProfileStatus struct {
metav1alpha1.StatusMeta `json:",inline"`
}
// InstanceProfileOutput defines the stack outputs
type InstanceProfileOutput struct {
// http://docs.aws.amazon.com/AWSCloudFormation/latest/UserGuide/aws-resource-iam-instanceprofile.html
Ref string `json:"ref,omitempty"`
// Arn defines the Arn
Arn string `json:"arn,omitempty" cloudformation:"Arn,Output"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:resource:categories=aws;iam
// +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
// InstanceProfile is the Schema for the iam InstanceProfile API
type InstanceProfile struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec InstanceProfileSpec `json:"spec,omitempty"`
Status InstanceProfileStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// InstanceProfileList contains a list of Account
type InstanceProfileList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []InstanceProfile `json:"items"`
}
func init() {
SchemeBuilder.Register(&InstanceProfile{}, &InstanceProfileList{})
}