generated from crossplane/upjet-provider-template
/
zz_apikey_types.go
executable file
·124 lines (93 loc) · 5.94 KB
/
zz_apikey_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
/*
Copyright 2022 Upbound Inc.
*/
// Code generated by upjet. DO NOT EDIT.
package v1alpha1
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 APIKeyObservation struct {
// Unique identifier for this Project API key.
APIKeyID *string `json:"apiKeyId,omitempty" tf:"api_key_id,omitempty"`
// Description of this Project API key.
Description *string `json:"description,omitempty" tf:"description,omitempty"`
ID *string `json:"id,omitempty" tf:"id,omitempty"`
ProjectAssignment []ProjectAssignmentObservation `json:"projectAssignment,omitempty" tf:"project_assignment,omitempty"`
// Unique 24-hexadecimal digit string that identifies your project.
ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"`
PublicKey *string `json:"publicKey,omitempty" tf:"public_key,omitempty"`
// List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The MongoDB Documentation describes the valid roles that can be assigned. DEPRECATED Use project_assignment instead.
RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,omitempty"`
}
type APIKeyParameters struct {
// Description of this Project API key.
// +kubebuilder:validation:Optional
Description *string `json:"description,omitempty" tf:"description,omitempty"`
// +kubebuilder:validation:Optional
ProjectAssignment []ProjectAssignmentParameters `json:"projectAssignment,omitempty" tf:"project_assignment,omitempty"`
// Unique 24-hexadecimal digit string that identifies your project.
// +kubebuilder:validation:Optional
ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"`
// List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The MongoDB Documentation describes the valid roles that can be assigned. DEPRECATED Use project_assignment instead.
// +kubebuilder:validation:Optional
RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,omitempty"`
}
type ProjectAssignmentObservation struct {
// Unique 24-hexadecimal digit string that identifies your project.
ProjectID *string `json:"projectId,omitempty" tf:"project_id,omitempty"`
// List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The MongoDB Documentation describes the valid roles that can be assigned. DEPRECATED Use project_assignment instead.
RoleNames []*string `json:"roleNames,omitempty" tf:"role_names,omitempty"`
}
type ProjectAssignmentParameters struct {
// Unique 24-hexadecimal digit string that identifies your project.
// +kubebuilder:validation:Required
ProjectID *string `json:"projectId" tf:"project_id,omitempty"`
// List of Project roles that the Programmatic API key needs to have. Ensure you provide: at least one role and ensure all roles are valid for the Project. You must specify an array even if you are only associating a single role with the Programmatic API key. The MongoDB Documentation describes the valid roles that can be assigned. DEPRECATED Use project_assignment instead.
// +kubebuilder:validation:Required
RoleNames []*string `json:"roleNames" tf:"role_names,omitempty"`
}
// APIKeySpec defines the desired state of APIKey
type APIKeySpec struct {
v1.ResourceSpec `json:",inline"`
ForProvider APIKeyParameters `json:"forProvider"`
}
// APIKeyStatus defines the observed state of APIKey.
type APIKeyStatus struct {
v1.ResourceStatus `json:",inline"`
AtProvider APIKeyObservation `json:"atProvider,omitempty"`
}
// +kubebuilder:object:root=true
// APIKey is the Schema for the APIKeys API. Creates and assigns the specified Atlas Organization API Key to the specified Project. Users with the Project Owner role in the project associated with the API key can use the organization API key to access the resources.
// +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,mongodbatlas}
type APIKey struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.description)",message="description is a required parameter"
// +kubebuilder:validation:XValidation:rule="self.managementPolicy == 'ObserveOnly' || has(self.forProvider.projectId)",message="projectId is a required parameter"
Spec APIKeySpec `json:"spec"`
Status APIKeyStatus `json:"status,omitempty"`
}
// +kubebuilder:object:root=true
// APIKeyList contains a list of APIKeys
type APIKeyList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []APIKey `json:"items"`
}
// Repository type metadata.
var (
APIKey_Kind = "APIKey"
APIKey_GroupKind = schema.GroupKind{Group: CRDGroup, Kind: APIKey_Kind}.String()
APIKey_KindAPIVersion = APIKey_Kind + "." + CRDGroupVersion.String()
APIKey_GroupVersionKind = CRDGroupVersion.WithKind(APIKey_Kind)
)
func init() {
SchemeBuilder.Register(&APIKey{}, &APIKeyList{})
}