/
zz_portfolioshare_types.go
executable file
·186 lines (143 loc) · 9.96 KB
/
zz_portfolioshare_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
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
// SPDX-FileCopyrightText: 2024 The Crossplane Authors <https://crossplane.io>
//
// SPDX-License-Identifier: Apache-2.0
// 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 PortfolioShareInitParameters struct {
// Language code. Valid values: en (English), jp (Japanese), zh (Chinese). Default value is en.
AcceptLanguage *string `json:"acceptLanguage,omitempty" tf:"accept_language,omitempty"`
// Portfolio identifier.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/servicecatalog/v1beta1.Portfolio
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
PortfolioID *string `json:"portfolioId,omitempty" tf:"portfolio_id,omitempty"`
// Reference to a Portfolio in servicecatalog to populate portfolioId.
// +kubebuilder:validation:Optional
PortfolioIDRef *v1.Reference `json:"portfolioIdRef,omitempty" tf:"-"`
// Selector for a Portfolio in servicecatalog to populate portfolioId.
// +kubebuilder:validation:Optional
PortfolioIDSelector *v1.Selector `json:"portfolioIdSelector,omitempty" tf:"-"`
// Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
PrincipalID *string `json:"principalId,omitempty" tf:"principal_id,omitempty"`
// Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
SharePrincipals *bool `json:"sharePrincipals,omitempty" tf:"share_principals,omitempty"`
// Whether to enable sharing of aws_servicecatalog_tag_option resources when creating the portfolio share.
ShareTagOptions *bool `json:"shareTagOptions,omitempty" tf:"share_tag_options,omitempty"`
// Type of portfolio share. Valid values are ACCOUNT (an external account), ORGANIZATION (a share to every account in an organization), ORGANIZATIONAL_UNIT, ORGANIZATION_MEMBER_ACCOUNT (a share to an account in an organization).
Type *string `json:"type,omitempty" tf:"type,omitempty"`
// Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
WaitForAcceptance *bool `json:"waitForAcceptance,omitempty" tf:"wait_for_acceptance,omitempty"`
}
type PortfolioShareObservation struct {
// Language code. Valid values: en (English), jp (Japanese), zh (Chinese). Default value is en.
AcceptLanguage *string `json:"acceptLanguage,omitempty" tf:"accept_language,omitempty"`
// Whether the shared portfolio is imported by the recipient account. If the recipient is organizational, the share is automatically imported, and the field is always set to true.
Accepted *bool `json:"accepted,omitempty" tf:"accepted,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
// Portfolio identifier.
PortfolioID *string `json:"portfolioId,omitempty" tf:"portfolio_id,omitempty"`
// Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
PrincipalID *string `json:"principalId,omitempty" tf:"principal_id,omitempty"`
// Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
SharePrincipals *bool `json:"sharePrincipals,omitempty" tf:"share_principals,omitempty"`
// Whether to enable sharing of aws_servicecatalog_tag_option resources when creating the portfolio share.
ShareTagOptions *bool `json:"shareTagOptions,omitempty" tf:"share_tag_options,omitempty"`
// Type of portfolio share. Valid values are ACCOUNT (an external account), ORGANIZATION (a share to every account in an organization), ORGANIZATIONAL_UNIT, ORGANIZATION_MEMBER_ACCOUNT (a share to an account in an organization).
Type *string `json:"type,omitempty" tf:"type,omitempty"`
// Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
WaitForAcceptance *bool `json:"waitForAcceptance,omitempty" tf:"wait_for_acceptance,omitempty"`
}
type PortfolioShareParameters struct {
// Language code. Valid values: en (English), jp (Japanese), zh (Chinese). Default value is en.
// +kubebuilder:validation:Optional
AcceptLanguage *string `json:"acceptLanguage,omitempty" tf:"accept_language,omitempty"`
// Portfolio identifier.
// +crossplane:generate:reference:type=github.com/upbound/provider-aws/apis/servicecatalog/v1beta1.Portfolio
// +crossplane:generate:reference:extractor=github.com/crossplane/upjet/pkg/resource.ExtractResourceID()
// +kubebuilder:validation:Optional
PortfolioID *string `json:"portfolioId,omitempty" tf:"portfolio_id,omitempty"`
// Reference to a Portfolio in servicecatalog to populate portfolioId.
// +kubebuilder:validation:Optional
PortfolioIDRef *v1.Reference `json:"portfolioIdRef,omitempty" tf:"-"`
// Selector for a Portfolio in servicecatalog to populate portfolioId.
// +kubebuilder:validation:Optional
PortfolioIDSelector *v1.Selector `json:"portfolioIdSelector,omitempty" tf:"-"`
// Identifier of the principal with whom you will share the portfolio. Valid values AWS account IDs and ARNs of AWS Organizations and organizational units.
// +kubebuilder:validation:Optional
PrincipalID *string `json:"principalId,omitempty" tf:"principal_id,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:"-"`
// Enables or disables Principal sharing when creating the portfolio share. If this flag is not provided, principal sharing is disabled.
// +kubebuilder:validation:Optional
SharePrincipals *bool `json:"sharePrincipals,omitempty" tf:"share_principals,omitempty"`
// Whether to enable sharing of aws_servicecatalog_tag_option resources when creating the portfolio share.
// +kubebuilder:validation:Optional
ShareTagOptions *bool `json:"shareTagOptions,omitempty" tf:"share_tag_options,omitempty"`
// Type of portfolio share. Valid values are ACCOUNT (an external account), ORGANIZATION (a share to every account in an organization), ORGANIZATIONAL_UNIT, ORGANIZATION_MEMBER_ACCOUNT (a share to an account in an organization).
// +kubebuilder:validation:Optional
Type *string `json:"type,omitempty" tf:"type,omitempty"`
// Whether to wait (up to the timeout) for the share to be accepted. Organizational shares are automatically accepted.
// +kubebuilder:validation:Optional
WaitForAcceptance *bool `json:"waitForAcceptance,omitempty" tf:"wait_for_acceptance,omitempty"`
}
// PortfolioShareSpec defines the desired state of PortfolioShare
type PortfolioShareSpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider PortfolioShareParameters `json:"forProvider"`
// THIS IS A BETA FIELD. It will be honored
// unless the Management Policies feature flag is disabled.
// InitProvider holds the same fields as ForProvider, with the exception
// of Identifier and other resource reference fields. The fields that are
// in InitProvider are merged into ForProvider when the resource is created.
// The same fields are also added to the terraform ignore_changes hook, to
// avoid updating them after creation. This is useful for fields that are
// required on creation, but we do not desire to update them after creation,
// for example because of an external controller is managing them, like an
// autoscaler.
InitProvider PortfolioShareInitParameters `json:"initProvider,omitempty"`
}
// PortfolioShareStatus defines the observed state of PortfolioShare.
type PortfolioShareStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider PortfolioShareObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:storageversion
// PortfolioShare is the Schema for the PortfolioShares API. Manages a Service Catalog Portfolio Share
// +kubebuilder:printcolumn:name="SYNCED",type="string",JSONPath=".status.conditions[?(@.type=='Synced')].status"
// +kubebuilder:printcolumn:name="READY",type="string",JSONPath=".status.conditions[?(@.type=='Ready')].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:resource:scope=Cluster,categories={crossplane,managed,aws}
type PortfolioShare struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.principalId) || (has(self.initProvider) && has(self.initProvider.principalId))",message="spec.forProvider.principalId is a required parameter"
// +kubebuilder:validation:XValidation:rule="!('*' in self.managementPolicies || 'Create' in self.managementPolicies || 'Update' in self.managementPolicies) || has(self.forProvider.type) || (has(self.initProvider) && has(self.initProvider.type))",message="spec.forProvider.type is a required parameter"
Spec PortfolioShareSpec `json:"spec"`
Status PortfolioShareStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// PortfolioShareList contains a list of PortfolioShares
type PortfolioShareList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []PortfolioShare `json:"items"`
}
// Repository type metadata.
var (
PortfolioShare_Kind = "PortfolioShare"
PortfolioShare_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: PortfolioShare_Kind}.String()
PortfolioShare_KindAPIVersion = PortfolioShare_Kind + "." + CRDGroupVersion.String()
PortfolioShare_GroupVersionKind = CRDGroupVersion.WithKind(PortfolioShare_Kind)
)
func init() {
SchemeBuilder.Register(&PortfolioShare{}, &PortfolioShareList{})
}