# Package com.elastisys.scale.cloudpool.api.types

Class Summary
CloudPoolMetadata: Describes static properties about the cloud pool itself and the cloud it manages.
CloudPoolStatus: Represents an execution status for a `CloudPool`.
CloudProviders: Enumeration of known cloud providers/platforms for which there are cloud pool implementations.
Machine: Represents a machine that is a member of a `MachinePool` managed by a `CloudPool`.
Machine.ActiveMemberPredicate: A `Predicate` that returns `true` when passed a `Machine` that is an active pool member -- it has been allocated from the underlying infrastructure (`MachineState.REQUESTED`, `MachineState.PENDING` or `MachineState.RUNNING`) and is an active pool member (`MembershipStatus.isActive()`).
Machine.AllocatedMachinePredicate: A `Predicate` that returns `true` when passed a `Machine` that has been allocated from the underlying infrastructure (machine state `MachineState.REQUESTED`, `MachineState.PENDING` or `MachineState.RUNNING`).
Machine.Builder: A builder for creating `Machine` instances.
Machine.EvictableMemberPredicate: A `Predicate` that returns `true` when passed a `Machine` with an evictable `MembershipStatus`.
Machine.InstanceHourStart: A `Function` that for a given `Machine` calculates when the started its most recent hour.
Machine.MachineIdExtractor: A transformation `Function` that when applied to a `Machine` extracts the `Machine`'s id.
Machine.MachineStateExtractor: A transformation `Function` that when applied to a `Machine` extracts the `Machine`'s state.
Machine.MachineWithState: A `Predicate` that returns `true` when passed a `Machine` in a given `MachineState`.
Machine.RemainingInstanceHourTime: A `Function` that for a given `Machine` calculates the remaining time (in seconds) of the machine's current hour.
Machine.RequestAge: A `Function` that optionally returns the number of milliseconds of how long ago the request to start a given `Machine` was made.
Machine.StartedMachinePredicate: A `Predicate` that returns `true` when passed a `Machine` that has been started by the underlying infrastructure (machine state is `MachineState.PENDING` or `MachineState.RUNNING`).
Machine.ToShortMachineFormat: A `Function` that, for a given `Machine`, returns a clone of the `Machine` that excludes the meta data field of the original `Machine`.
Machine.ToShortMachineString: A `Function` that, for a given `Machine`, returns a string representation that excludes any `Machine` meta data (which can produce quite some log noise).
MachinePool: Represents a snapshot of the machine pool managed by a `CloudPool`.
MembershipStatus: The pool membership status indicates if a `Machine` needs to be given special treatment.
PoolSizeSummary: Response message of the `CloudPool.getPoolSize()` operation that returns information about the pool size -- both desired and actual size.

Enum Summary
MachineState: The range of permissible execution states for a `Machine` in a `MachinePool`.
ServiceState: The range of permissible service states that a `Machine` can take on.