/
access_point.go
107 lines (98 loc) · 5.24 KB
/
access_point.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 Amazon.com Inc. or its affiliates. All Rights Reserved.
//
// Licensed under the Apache License, Version 2.0 (the "License"). You may
// not use this file except in compliance with the License. A copy of the
// License is located at
//
// http://aws.amazon.com/apache2.0/
//
// or in the "license" file accompanying this file. This file 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.
// Code generated by ack-generate. DO NOT EDIT.
package v1alpha1
import (
ackv1alpha1 "github.com/aws-controllers-k8s/runtime/apis/core/v1alpha1"
metav1 "k8s.io/apimachinery/pkg/apis/meta/v1"
)
// AccessPointSpec defines the desired state of AccessPoint.
type AccessPointSpec struct {
// The ID of the EFS file system that the access point provides access to.
FileSystemID *string `json:"fileSystemID,omitempty"`
FileSystemRef *ackv1alpha1.AWSResourceReferenceWrapper `json:"fileSystemRef,omitempty"`
// The operating system user and group applied to all file system requests made
// using the access point.
PosixUser *PosixUser `json:"posixUser,omitempty"`
// Specifies the directory on the EFS file system that the access point exposes
// as the root directory of your file system to NFS clients using the access
// point. The clients using the access point can only access the root directory
// and below. If the RootDirectory > Path specified does not exist, Amazon EFS
// creates it and applies the CreationInfo settings when a client connects to
// an access point. When specifying a RootDirectory, you must provide the Path,
// and the CreationInfo.
//
// Amazon EFS creates a root directory only if you have provided the CreationInfo:
// OwnUid, OwnGID, and permissions for the directory. If you do not provide
// this information, Amazon EFS does not create the root directory. If the root
// directory does not exist, attempts to mount using the access point will fail.
RootDirectory *RootDirectory `json:"rootDirectory,omitempty"`
// Creates tags associated with the access point. Each tag is a key-value pair,
// each key must be unique. For more information, see Tagging Amazon Web Services
// resources (https://docs.aws.amazon.com/general/latest/gr/aws_tagging.html)
// in the Amazon Web Services General Reference Guide.
Tags []*Tag `json:"tags,omitempty"`
}
// AccessPointStatus defines the observed state of AccessPoint
type AccessPointStatus struct {
// All CRs managed by ACK have a common `Status.ACKResourceMetadata` member
// that is used to contain resource sync state, account ownership,
// constructed ARN for the resource
// +kubebuilder:validation:Optional
ACKResourceMetadata *ackv1alpha1.ResourceMetadata `json:"ackResourceMetadata"`
// All CRS managed by ACK have a common `Status.Conditions` member that
// contains a collection of `ackv1alpha1.Condition` objects that describe
// the various terminal states of the CR and its backend AWS service API
// resource
// +kubebuilder:validation:Optional
Conditions []*ackv1alpha1.Condition `json:"conditions"`
// The ID of the access point, assigned by Amazon EFS.
// +kubebuilder:validation:Optional
AccessPointID *string `json:"accessPointID,omitempty"`
// Identifies the lifecycle phase of the access point.
// +kubebuilder:validation:Optional
LifeCycleState *string `json:"lifeCycleState,omitempty"`
// The name of the access point. This is the value of the Name tag.
// +kubebuilder:validation:Optional
Name *string `json:"name,omitempty"`
// Identifies the Amazon Web Services account that owns the access point resource.
// +kubebuilder:validation:Optional
OwnerID *string `json:"ownerID,omitempty"`
}
// AccessPoint is the Schema for the AccessPoints API
// +kubebuilder:object:root=true
// +kubebuilder:subresource:status
// +kubebuilder:printcolumn:name="ID",type=string,priority=0,JSONPath=`.status.accessPointID`
// +kubebuilder:printcolumn:name="FILESYSTEMID",type=string,priority=0,JSONPath=`.spec.fileSystemID`
// +kubebuilder:printcolumn:name="ROOTDIRECTORY",type=string,priority=0,JSONPath=`.spec.rootDirectory.path`
// +kubebuilder:printcolumn:name="POSIXUSERUID",type=integer,priority=0,JSONPath=`.spec.posixUser.uid`
// +kubebuilder:printcolumn:name="POSIXUSERGID",type=integer,priority=0,JSONPath=`.spec.posixUser.gid`
// +kubebuilder:printcolumn:name="STATE",type=string,priority=0,JSONPath=`.status.lifeCycleState`
// +kubebuilder:printcolumn:name="Synced",type="string",priority=0,JSONPath=".status.conditions[?(@.type==\"ACK.ResourceSynced\")].status"
// +kubebuilder:printcolumn:name="Age",type="date",priority=0,JSONPath=".metadata.creationTimestamp"
type AccessPoint struct {
metav1.TypeMeta `json:",inline"`
metav1.ObjectMeta `json:"metadata,omitempty"`
Spec AccessPointSpec `json:"spec,omitempty"`
Status AccessPointStatus `json:"status,omitempty"`
}
// AccessPointList contains a list of AccessPoint
// +kubebuilder:object:root=true
type AccessPointList struct {
metav1.TypeMeta `json:",inline"`
metav1.ListMeta `json:"metadata,omitempty"`
Items []AccessPoint `json:"items"`
}
func init() {
SchemeBuilder.Register(&AccessPoint{}, &AccessPointList{})
}