-
Notifications
You must be signed in to change notification settings - Fork 113
/
zz_policy_types.go
executable file
·107 lines (83 loc) · 4.26 KB
/
zz_policy_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
/*
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 PolicyObservation struct {
// Amazon Resource Name (ARN) of the policy.
Arn *string `json:"arn,omitempty" tf:"arn,omitempty"`
// The unique identifier (ID) of the policy.
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"`
}
type PolicyParameters struct {
// The policy content to add to the new policy. For example, if you create a service control policy (SCP), this string must be JSON text that specifies the permissions that admins in attached accounts can delegate to their users, groups, and roles. For more information about the SCP syntax, see the Service Control Policy Syntax documentation and for more information on the Tag Policy syntax, see the Tag Policy Syntax documentation.
// +kubebuilder:validation:Required
Content *string `json:"content" tf:"content,omitempty"`
// A description to assign to the policy.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// The friendly name to assign to the policy.
// +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:"-"`
// If set to true, destroy will not delete the policy and instead just remove the resource from state. This can be useful in situations where the policies (and the associated attachment) must be preserved to meet the AWS minimum requirement of 1 attached policy.
// +kubebuilder:validation:Optional
SkipDestroy *bool `json:"skipDestroy,omitempty" tf:"skip_destroy,omitempty"`
// Key-value map of resource tags.
// +kubebuilder:validation:Optional
Tags map[string]*string `json:"tags,omitempty" tf:"tags,omitempty"`
// The type of policy to create. Valid values are AISERVICES_OPT_OUT_POLICY, BACKUP_POLICY, SERVICE_CONTROL_POLICY (SCP), and TAG_POLICY. Defaults to SERVICE_CONTROL_POLICY.
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
}
// PolicySpec defines the desired state of Policy
type PolicySpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider PolicyParameters `json:"forProvider"`
}
// PolicyStatus defines the observed state of Policy.
type PolicyStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider PolicyObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// Policy is the Schema for the Policys API. Provides a resource to manage an AWS Organizations policy.
// +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 Policy struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec PolicySpec `json:"spec"`
Status PolicyStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// PolicyList contains a list of Policys
type PolicyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []Policy `json:"items"`
}
// Repository type metadata.
var (
Policy_Kind = "Policy"
Policy_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: Policy_Kind}.String()
Policy_KindAPIVersion = Policy_Kind + "." + CRDGroupVersion.String()
Policy_GroupVersionKind = CRDGroupVersion.WithKind(Policy_Kind)
)
func init() {
SchemeBuilder.Register(&Policy{}, &PolicyList{})
}