Documentation
¶
Overview ¶
Copyright © 2020 Yale University
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Copyright © 2020 Yale University ¶
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Copyright © 2020 Yale University ¶
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License along with this program. If not, see <http://www.gnu.org/licenses/>.
Index ¶
- func NewServer(config common.Config) error
- func TokenMiddleware(psk []byte, public map[string]string, h http.Handler) http.Handler
- type AccessPoint
- type AccessPointCreateRequest
- type FileSystemCreateRequest
- type FileSystemResponse
- type FileSystemSize
- type FileSystemUpdateRequest
- type LogWriter
- type MountTarget
- type Tag
Constants ¶
This section is empty.
Variables ¶
This section is empty.
Functions ¶
Types ¶
type AccessPoint ¶
type AccessPoint struct {
// The unique Amazon Resource Name (ARN) associated with the access point.
AccessPointArn string
// The ID of the access point, assigned by Amazon EFS.
AccessPointId string
// Identifies the lifecycle phase of the access point.
LifeCycleState string
// The name of the access point. This is the value of the Name tag.
Name string
// The full POSIX identity, including the user ID, group ID, and secondary group
// IDs on the access point that is used for all file operations by NFS clients
// using the access point.
PosixUser *efs.PosixUser
// The directory on the Amazon EFS file system that the access point exposes
// as the root directory to NFS clients using the access point.
RootDirectory *efs.RootDirectory
}
type AccessPointCreateRequest ¶ added in v0.9.0
type AccessPointCreateRequest struct {
Name string
// https://docs.aws.amazon.com/sdk-for-go/api/service/efs/#PosixUser
PosixUser *efs.PosixUser
// https://docs.aws.amazon.com/sdk-for-go/api/service/efs/#CreationInfo
RootDirectory *efs.RootDirectory
}
AccessPointCreateRequest is the input for creating an access point
type FileSystemCreateRequest ¶
type FileSystemCreateRequest struct {
// Name of the filesystem
Name string
// AccessPoints is an optional list of access points to create
AccessPoints []*AccessPointCreateRequest
// BackupPolicy is the backup policy/status for the filesystem
// Valid values are ENABLED | DISABLED
BackupPolicy string
// KMSKeyId used to encrypt the filesystem
KmsKeyId string
// After how long to transition to Infrequent Access storage
// Valid values: NONE | AFTER_7_DAYS | AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_90_DAYS
LifeCycleConfiguration string
// Rule for transitioning back to the primary storage class from IA
// Valid values: NONE | AFTER_1_ACCESS
TransitionToPrimaryStorageClass string
// OneZone creates the filesystem using the EFS OneZone storage classes
OneZone bool
// Security Group IDs to apply to the mount targets
Sgs []string
// subnets holds the list of subnets for one zone, not exposed to the client
Subnets []string
// Tags to apply to the filesystem
Tags []*Tag
}
FileSystemCreateRequest is the request input for creating a filesystem
type FileSystemResponse ¶
type FileSystemResponse struct {
// list of access points associated with the filesystem
AccessPoints []*AccessPoint
// availability zone the filesystem is using
AvailabilityZone string
// BackupPolicy is the backup policy/status for the filesystem
// Valid values are ENABLED | ENABLING | DISABLED | DISABLING
BackupPolicy string
// The time that the file system was created, in seconds (since 1970-01-01T00:00:00Z).
CreationTime time.Time
// The Amazon Resource Name (ARN) for the EFS file system, in the format arn:aws:elasticfilesystem:region:account-id:file-system/file-system-id
FileSystemArn string
// The ID of the file system, assigned by Amazon EFS.
FileSystemId string
// The ID of an KMS master key (CMK) used to encrypt the file system.
KmsKeyId string
// The lifecycle phase of the file system.
LifeCycleState string
// The lifecycle transition policy.
// Valid values: NONE | AFTER_7_DAYS | AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_90_DAYS
LifeCycleConfiguration string
// Rule for transitioning back to the primary storage class from IA
// Valid values: NONE | AFTER_1_ACCESS
TransitionToPrimaryStorageClass string
// A list of mount targets associated with the filesystem.
MountTargets []*MountTarget
// The name of the filesystem.
Name string
// The current number of access points that the file system has.
NumberOfAccessPoints int64
// The current number of mount targets that the file system has.
NumberOfMountTargets int64
// If true, the filesystem is using the EFS OneZone storage classes
OneZone bool
// The latest known metered size (in bytes) of data stored in the file system,
// in its Value field, and the time at which that size was determined in its
// Timestamp field. The Timestamp value is the integer number of seconds since
// 1970-01-01T00:00:00Z. The SizeInBytes value doesn't represent the size of
// a consistent snapshot of the file system, but it is eventually consistent
// when there are no writes to the file system. That is, SizeInBytes represents
// actual size only if the file system is not modified for a period longer than
// a couple of hours. Otherwise, the value is not the exact size that the file
// system was at any point in time.
SizeInBytes *FileSystemSize
// The tags associated with the file system.
Tags []*Tag
}
FileSystemResponse represents a full filesystem service response
A filesystem can have zero or more mount targets and zero or more access points.
type FileSystemSize ¶
type FileSystemSize struct {
// The time at which the size of data, returned in the Value field, was determined.
// The value is the integer number of seconds since 1970-01-01T00:00:00Z.
Timestamp time.Time
// The latest known metered size (in bytes) of data stored in the file system.
//
// Value is a required field
Value int64
// The latest known metered size (in bytes) of data stored in the Infrequent
// Access storage class.
ValueInIA int64
// The latest known metered size (in bytes) of data stored in the Standard storage
// class.
ValueInStandard int64
}
type FileSystemUpdateRequest ¶ added in v0.5.0
type FileSystemUpdateRequest struct {
// BackupPolicy is the backup policy/status for the filesystem
// Valid values are ENABLED | DISABLED
BackupPolicy string
// After how long to transition to Infrequent Access storage
// Valid values: NONE | AFTER_7_DAYS | AFTER_14_DAYS | AFTER_30_DAYS | AFTER_60_DAYS | AFTER_90_DAYS
LifeCycleConfiguration string
// Rule for transitioning back to the primary storage class from IA
// Valid values: NONE | AFTER_1_ACCESS
TransitionToPrimaryStorageClass string
// Tags to apply to the filesystem
Tags []*Tag
}
FileSystemUpdateRequest is the input for updating a filesystem
type MountTarget ¶
type MountTarget struct {
// The unique and consistent identifier of the Availability Zone (AZ) that the
// mount target resides in. For example, use1-az1 is an AZ ID for the us-east-1
// Region and it has the same location in every AWS account.
AvailabilityZoneId string
// The name of the Availability Zone (AZ) that the mount target resides in.
// AZs are independently mapped to names for each AWS account. For example,
// the Availability Zone us-east-1a for your AWS account might not be the same
// location as us-east-1a for another AWS account.
AvailabilityZoneName string
// Address at which the file system can be mounted by using the mount target.
IpAddress string
// Lifecycle state of the mount target.
//
// LifeCycleState is a required field
LifeCycleState string
// System-assigned mount target ID.
//
// MountTargetId is a required field
MountTargetId string
// The ID of the mount target's subnet.
//
// SubnetId is a required field
SubnetId string
}