| Safe Haskell | None |
|---|---|
| Language | Haskell2010 |
Network.LXD.Client.Types
Contents
Description
This module implements all types used to communicate with the LXD daemon REST end-point.
These types are e.g. used in the Network.LXD.Client.Commands module.
- data GenericResponse op a = Response {
- responseType :: ResponseType
- status :: String
- statusCode :: StatusCode
- responseOperation :: op
- errorCode :: Int
- error :: String
- metadata :: a
- type Response a = GenericResponse String a
- type AsyncResponse a = GenericResponse OperationId (BackgroundOperation a)
- data ResponseType
- data StatusCode
- data BackgroundOperation m = BackgroundOperation {
- backgroundOperationId :: String
- backgroundOperationClass :: String
- backgroundOperationCreatedAt :: String
- backgroundOperationUpdatedAt :: String
- backgroundOperationStatus :: String
- backgroundOperationStatusCode :: StatusCode
- backgroundOperationMetadata :: m
- backgroundOperationMayCancel :: Bool
- backgroundOperationeErr :: String
- data ApiConfig = ApiConfig {}
- data ApiStatus
- data AuthStatus
- newtype ApiVersion = ApiVersion String
- data ApiExtension
- newtype CertificateHash = CertificateHash String
- newtype ContainerName = ContainerName String
- data Container = Container {
- containerArchitecture :: String
- containerName :: String
- containerConfig :: Map String String
- containerCreatedAt :: String
- containerDevices :: Map String (Map String String)
- containerEphemeral :: Bool
- containerProfiles :: [String]
- containerStateful :: Bool
- containerExpandedConfig :: Map String String
- containerExpandedDevices :: Map String (Map String String)
- containerStatus :: String
- containerSatusCode :: Int
- containerLastUsedAt :: String
- data ContainerPut = ContainerPut {}
- data ContainerPatch = ContainerPatch {}
- newtype ContainerRename = ContainerRename String
- data MemoryState = MemoryState {}
- data NetworkState = NetworkState {}
- data NetworkAddress = NetworkAddress {}
- data NetworkCounters = NetworkCounters {}
- data ContainerState = ContainerState {}
- data StateAction
- data ContainerPutState = ContainerPutState {}
- containerNewState :: StateAction -> Bool -> ContainerPutState
- data ContainerCreateRequest = ContainerCreateRequest {
- containerCreateRequestName :: String
- containerCreateRequestArchitecture :: String
- containerCreateRequestProfiles :: [String]
- containerCreateRequestEphemeral :: Bool
- containerCreateRequestConfig :: Map String String
- containerCreateRequestDevices :: Map String (Map String String)
- containerCreateRequestInstanceType :: Maybe String
- containerCreateRequestSource :: ContainerSource
- containerCreateRequest :: String -> ContainerSource -> ContainerCreateRequest
- data ContainerSource
- data ContainerDeleteRequest = ContainerDeleteRequest
- data ExecParams
- data ExecRequest params = ExecRequest {}
- type ExecResponseMetadataImmediate = Value
- newtype ExecResponseMetadataWebsocket fdset = ExecResponseMetadataWebsocket {
- execResponseMetadataWebsocketFds :: Fds fdset
- type family ExecResponseMetadata (params :: ExecParams) :: * where ...
- newtype Secret = Secret String
- data FdSet
- data Fds set where
- type family ExecFds (params :: ExecParams) :: FdSet where ...
- newtype Gid = Gid Int
- newtype Uid = Uid Int
- newtype FileMode = FileMode String
- newtype FileType = FileType String
- data RawFileResponse = RawFileResponse MediaType ByteString
- rawFileResponseBody :: RawFileResponse -> ByteString
- fileResponse :: FileType -> ByteString -> Either String FileResponse
- data FileResponse
- = File ByteString
- | Directory (Response [String])
- data PathResponse = PathResponse {}
- newtype LocalContainer = LocalContainer ContainerName
- newtype ImageId = ImageId String
- data Image = Image {
- imageAllAliases :: [ImageAlias]
- imageArchitecture :: String
- imageAutoUpdate :: Bool
- imageCached :: Bool
- imageFingerprint :: String
- imageFilename :: String
- imageProperties :: ImageProperties
- imagePublic :: Bool
- imageSize :: Integer
- imageCreatedAt :: String
- imageExpiresAt :: String
- imageLastUsedAt :: String
- imageUplaodedAt :: String
- data ImageAlias = ImageAlias {}
- defaultImageAlias :: String -> ImageAlias
- data ImageProperties = ImageProperties {}
- newtype ImageAliasName = ImageAliasName String
- data ImageCreateRequest = ImageCreateRequest {}
- imageCreateRequest :: ImageSource -> ImageCreateRequest
- data ImageSource
- data ImageDeleteRequest = ImageDeleteRequest
- newtype LocalImageByAlias = LocalImageByAlias ImageAliasName
- newtype LocalImageByFingerprint = LocalImageByFingerprint ImageId
- data RemoteImage = RemoteImage {}
- remoteImage :: String -> ImageAliasName -> RemoteImage
- remoteImageId :: String -> ImageId -> RemoteImage
- newtype NetworkName = NetworkName String
- data Network = Network {}
- data NetworkCreateRequest = NetworkCreateRequest {}
- newtype NetworkConfigRequest = NetworkConfigRequest {}
- newtype ProfileName = ProfileName String
- data Profile = Profile {}
- data ProfileCreateRequest = ProfileCreateRequest {}
- data ProfileConfigRequest = ProfileConfigRequest {}
- newtype PoolName = PoolName String
- data Pool = Pool {}
- data PoolCreateRequest = PoolCreateRequest {}
- newtype PoolConfigRequest = PoolConfigRequest {}
- type VolumeType = String
- data VolumeName = VolumeName VolumeType String
- data Volume = Volume {}
- data VolumeCreateRequest = VolumeCreateRequest {}
- newtype VolumeConfigRequest = VolumeConfigRequest {}
- newtype OperationId = OperationId String
- type OperationStatus = String
- newtype AllOperations = AllOperations (Map OperationStatus [OperationId])
- data Operation = Operation {}
- newtype OperationProgress = OperationProgress String
- data EventType
- data Event = Event {}
- data EventMetadata
- data JsonOrBinary
Generic responses
data GenericResponse op a Source #
Generic LXD API response object.
Constructors
| Response | |
Fields
| |
type Response a = GenericResponse String a Source #
LXD API synchronous repsonse object, without resulting operation.
type AsyncResponse a = GenericResponse OperationId (BackgroundOperation a) Source #
LXD API asynchronous response object, with resulting operation
data StatusCode Source #
Instances
Background operations
data BackgroundOperation m Source #
Background operation response object, with metadata of type m.
Constructors
Instances
| FromJSON m => FromJSON (BackgroundOperation m) Source # | |
API
LXD API configuration object.
Returend when querying GET /1.0. Some objects may not be present if
an untrusted requeset was made.
Constructors
| ApiConfig | |
Fields
| |
Constructors
| Development | |
| Stable | |
| Deprecated |
data AuthStatus Source #
Instances
data ApiExtension Source #
LXD API extension identifier.
Certificates
newtype CertificateHash Source #
LXD trusted certificate hash.
Constructors
| CertificateHash String |
Instances
Containers
Querying information
LXD container information.
Returned when querying GET /1.0/containers/<name>.
Constructors
Configuration
data ContainerPut Source #
Used to set the configuration of an LXD container.
Used when querying PUT /1.0/containers/<name>.
Constructors
| ContainerPut | |
Fields | |
Instances
data ContainerPatch Source #
Used to patch the configuration of an LXD container.
Used when querying PATCH /1.0/containers/<name>.
Constructors
| ContainerPatch | |
Fields | |
Instances
newtype ContainerRename Source #
Used to rename a container to the given name.
Used when querying POST /1.0/containers/<name>.
Constructors
| ContainerRename String |
Instances
State
data MemoryState Source #
Memory state of an LXD container. As used by ContainerState.
Constructors
| MemoryState | |
Instances
data NetworkState Source #
Network state of an LXD container network device. As used by ContainerState.
Constructors
| NetworkState | |
Instances
data NetworkAddress Source #
Network address of an LXD container network device. As used by NetworkState.
Constructors
| NetworkAddress | |
Instances
data NetworkCounters Source #
Collection of statistics of an LXD container network device. As used by NetworkState.
Constructors
| NetworkCounters | |
Instances
data ContainerState Source #
State of an LXD container.
Used when querying GET /1.0/container/<name>/state.
Constructors
| ContainerState | |
Instances
data StateAction Source #
State change action for an LXD container, as used by ContainerPutState.
Instances
data ContainerPutState Source #
State change request for an LXD container.
Used when querying PUT /1.0/container/<name>/state.
Constructors
| ContainerPutState | |
Instances
containerNewState :: StateAction -> Bool -> ContainerPutState Source #
Creating containers
data ContainerCreateRequest Source #
LXD create container request object.
Used when querying POST /1.0/containers.
Constructors
Instances
containerCreateRequest :: String -> ContainerSource -> ContainerCreateRequest Source #
Create a default ContainerCreateRequest.
data ContainerSource Source #
Source for creating a container, as used by ContainerCreateRequest.
Constructors
| ContainerSourceLocalByAlias LocalImageByAlias | Container based on a local image with a certain alias. |
| ContainerSourceLocalByFingerprint LocalImageByFingerprint | Container based on a local image with a certain alias. |
| ContainerSourceNone | Container without a pre-populated rootfs. |
| ContainerSourceRemote RemoteImage | Continer based on a public remote image. |
Instances
Deleting containers
data ContainerDeleteRequest Source #
LXD delete container request object.
Used when querying DELETE /1.0/containers/<name>.
Constructors
| ContainerDeleteRequest |
Executing commands
data ExecParams Source #
Configuration parameter to ExecRequest and ExecResponse.
Constructors
| ExecImmediate | Don't wait for a websocket connection before executing. |
| ExecWebsocketInteractive | Wait for websocket, allocate PTY. |
| ExecWebsocketNonInteractive | Wait for websocket, don't allocate PTY. |
Instances
data ExecRequest params Source #
LXD container exec request, configured using ExecParams as type parameter.
Request body when querying POST /1.0/containers/<name>/exec.
Constructors
| ExecRequest | |
Fields | |
Instances
type ExecResponseMetadataImmediate = Value Source #
Metadata of an immediate exec response.
Returned when querying POST /1.0/containers/<name>/exec with
ExecImmediate as configuration.
newtype ExecResponseMetadataWebsocket fdset Source #
Metadata of a websocket exec repsonse.
Returned when querying POST /1.0/containers/<name>/exec with
ExecWebsocketInteractive or ExecWebsocketNonInteractive as
configuration.
Paramtrized by a file descriptor set FdSet, see also the type family
ExecFds.
Constructors
| ExecResponseMetadataWebsocket | |
Fields
| |
Instances
type family ExecResponseMetadata (params :: ExecParams) :: * where ... Source #
Type family converting an ExecParams to the corresponding response type.
Working with file descriptors
A secret used to connect to a websocket.
A set of selected file descriptors.
A set of file descriptors.
Constructors
| FdsAll :: {..} -> Fds FdAll | |
Fields
| |
| FdsPty :: {..} -> Fds FdPty | |
Fields
| |
type family ExecFds (params :: ExecParams) :: FdSet where ... Source #
Type family converting an ExecParams to an FdSet.
Working with files
Group ID of a container file.
User ID of a container file.
Mode of a container file. Encoded in standard octal notation, e.g. 0644.
Type of a container file. Can be one of directory, file or symlink.
data RawFileResponse Source #
Raw file response, not yet decoded, used because of a bug in Servant.
Use headers to get actual content type.
Constructors
| RawFileResponse MediaType ByteString |
Instances
rawFileResponseBody :: RawFileResponse -> ByteString Source #
Get the body of a RawFileResponse.
fileResponse :: FileType -> ByteString -> Either String FileResponse Source #
Construct a file response from a type and a ByteString.
data FileResponse Source #
LXD file response object, representing either a file or a directory.
Used by the GET /1.0/containers/<name>/files/<filename> endpoints.
Constructors
| File ByteString | |
| Directory (Response [String]) |
Instances
data PathResponse Source #
LXD path response object, which is a file and metadata.
Used by the /1.0/containers/<name>/files/... endpoints.
Constructors
| PathResponse | |
Instances
Referencing containers
newtype LocalContainer Source #
Reference to a local container, as used by ImageSource.
Constructors
| LocalContainer ContainerName |
Instances
Images
Querying information
LXD image identifier.
LXD image information.
Returned when querying GET /1.0/images/<fingerprint>.
Constructors
| Image | |
Fields
| |
data ImageAlias Source #
Alias of an image.
Returned when querying GET /1.0/images/aliases/<name>,
and as a part of GET /1.0/images/<fingerprint>.
Constructors
| ImageAlias | |
Fields | |
Instances
defaultImageAlias :: String -> ImageAlias Source #
Create a default ImageAlias, with empty description and target.
newtype ImageAliasName Source #
LXD alias name.
Returned when querying GET /1.0/images/aliases.
Constructors
| ImageAliasName String |
Creating and publishing new images
data ImageCreateRequest Source #
LXD image create request object.
Used when querying POST /1.0/images.
Constructors
| ImageCreateRequest | |
Instances
imageCreateRequest :: ImageSource -> ImageCreateRequest Source #
Construct a new default ImageCreateRequest.
Deleting images
data ImageDeleteRequest Source #
LXD image delete request object.
Used when querying DELETE /1.0/images/<fingerprint>.
Constructors
| ImageDeleteRequest |
Instances
Referencing images
newtype LocalImageByAlias Source #
Source for a local image, specified by its alias.
Constructors
| LocalImageByAlias ImageAliasName |
Instances
newtype LocalImageByFingerprint Source #
Source for a local image, specified by its fingerprint
Constructors
| LocalImageByFingerprint ImageId |
Instances
data RemoteImage Source #
Source for an image from a public or private remote.
Constructors
| RemoteImage | |
Instances
remoteImage :: String -> ImageAliasName -> RemoteImage Source #
Create a remote image reference form a public remote.
remoteImageId :: String -> ImageId -> RemoteImage Source #
Create a remote image reference form a public remote, using an image ID.
Networks
LXD network.
Returned when querying GET /1.0/networks/<name>.
Constructors
| Network | |
Fields
| |
data NetworkCreateRequest Source #
LXD network create request.
Used when querying POST /1.0/networks.
Constructors
| NetworkCreateRequest | |
Instances
newtype NetworkConfigRequest Source #
LXD network config update request.
Used when querying PUT/PATCH /1.0/networks/<name>.
Constructors
| NetworkConfigRequest | |
Fields | |
Instances
Profiles
newtype ProfileName Source #
LXD profile name.
Returned by GET /1.0/profiles.
Constructors
| ProfileName String |
LXD profile.
Returned by GET /1.0/profiles/<name>.
Constructors
| Profile | |
Fields
| |
data ProfileCreateRequest Source #
LXD profile create request.
Used when querying POST /1.0/profiles.
Constructors
| ProfileCreateRequest | |
Instances
data ProfileConfigRequest Source #
LXD profile config request.
Used when querying PUT/PATCH /1.0/profiles/<name>.
Constructors
| ProfileConfigRequest | |
Instances
Storage
LXD storage pool name.
Returned by GET /1.0/storage-pools.
LXD pool.
Returned by GET /1.0/storage-pools/<name>.
Constructors
| Pool | |
Fields
| |
data PoolCreateRequest Source #
LXD pool create request.
Used when querying POST /1.0/storage-pools.
Constructors
| PoolCreateRequest | |
Instances
newtype PoolConfigRequest Source #
LXD pool config request.
Used when querying PUT/PATCH /1.0/storage-pools/<name>.
Constructors
| PoolConfigRequest | |
Fields | |
Instances
Volumes
type VolumeType = String Source #
Type of a volume.
data VolumeName Source #
LXD volume name, and its type.
Returned by GET /1.0/storage-pools/<name>/volumes.
Constructors
| VolumeName VolumeType String |
Instances
LXD volume.
Returend by GET /1.0/storage-pools/<name>/volumes/<type>/<volume>.
Constructors
| Volume | |
Fields
| |
data VolumeCreateRequest Source #
LXD volume create request.
Used when querying POST /1.0/storage-pools/<name>/volumes.
Constructors
| VolumeCreateRequest | |
Instances
newtype VolumeConfigRequest Source #
LXD volume config request.
Returend by PUT/PATCH /1.0/storage-pools/<name>/volumes/<type>/<volume>.
Constructors
| VolumeConfigRequest | |
Fields | |
Instances
Operations
type OperationStatus = String Source #
LXD operation status.
newtype AllOperations Source #
LXD list of all operations.
Constructors
| AllOperations (Map OperationStatus [OperationId]) |
Instances
LXD operation.
Returned when querying GET /1.0/operations/<uuid>.
Constructors
| Operation | |
newtype OperationProgress Source #
Progress of an LXD operation.
You can try to decode operationMetadata if the operationStatusCode is
SRunning to see of the operation contains progress information.
The embedded String value is in the format 87% (12.04 MB/s).
Constructors
| OperationProgress String |
Instances
Events
Type of an LXD event from the /1.0/events handle.
Constructors
| EventTypeLogging | |
| EventTypeOperation |
An event received from /1.0/events.
Constructors
| Event | |
Fields | |
data EventMetadata Source #
Metadata of an event.
Constructors
| EventLoggingMetadata Value | |
| EventOperationMetadata Operation |
Instances
Servant Helpers
data JsonOrBinary Source #
Instances