pause-health:
  description: Pause ceph health operations across the entire ceph cluster
resume-health:
  description: Resume ceph health operations across the entire ceph cluster
create-cache-tier:
  description: Create a new cache tier
  params:
    backer-pool:
      type: string
      description: |
        The name of the pool that will back the cache tier. Also known as
        the cold pool
    cache-pool:
      type: string
      description: |
        The name of the pool that will be the cache pool. Also known
        as the hot pool
    cache-mode:
      type: string
      default: writeback
      enum: [writeback, readonly]
      description: |
        The mode of the caching tier.  Please refer to the Ceph docs for more
        information
  required: [backer-pool, cache-pool]
  additionalProperties: false
remove-cache-tier:
  description: Remove an existing cache tier
  params:
    backer-pool:
      type: string
      description: |
        The name of the pool that backs the cache tier. Also known as
        the cold pool
    cache-pool:
      type: string
      description: |
        The name of the pool that is the cache pool. Also known
        as the hot pool
  required: [backer-pool, cache-pool]
  additionalProperties: false

create-pool:
  description: Creates a pool
  params:
    name:
      type: string
      description: The name of the pool
    profile-name:
      type: string
      description: The crush profile to use for this pool.  The ruleset must exist first.
    pool-type:
      type: string
      default: "replicated"
      enum: [replicated, erasure]
      description: |
        The pool type which may either be replicated to recover from lost OSDs by keeping multiple copies of the
        objects or erasure to get a kind of generalized RAID5 capability.
    replicas:
      type: integer
      default: 3
      description: |
        For the replicated pool this is the number of replicas to store of each object.
    erasure-profile-name:
      type: string
      default: default
      description: |
        The name of the erasure coding profile to use for this pool. Note this profile must exist
        before calling create-pool
  required: [name]
  additionalProperties: false
create-erasure-profile:
  description: Create a new erasure code profile to use on a pool.
  params:
    name:
      type: string
      description: The name of the profile
    failure-domain:
      type: string
      default: host
      enum: [chassis, datacenter, host, osd, pdu, pod, rack, region, room, root, row]
      description: |
        The failure-domain=host will create a CRUSH ruleset that ensures no two chunks are stored in the same host.
    plugin:
      type: string
      default: "jerasure"
      enum: [jerasure, isa, lrc, shec]
      description: |
        The erasure plugin to use for this profile.
        See http://docs.ceph.com/docs/master/rados/operations/erasure-code-profile/ for more details
    data-chunks:
      type: integer
      default: 3
      description: |
        The number of data chunks, i.e. the number of chunks in which the original object is divided. For instance
        if K = 2 a 10KB object will be divided into K objects of 5KB each.
    coding-chunks:
      type: integer
      default: 2
      description: |
        The number of coding chunks, i.e. the number of additional chunks computed by the encoding functions.
        If there are 2 coding chunks, it means 2 OSDs can be out without losing data.
    locality-chunks:
      type: integer
      description: |
        Group the coding and data chunks into sets of size locality. For instance, for k=4 and m=2, when locality=3
        two groups of three are created. Each set can be recovered without reading chunks from another set.
    durability-estimator:
      type: integer
      description: |
        The number of parity chunks each of which includes each data chunk in its calculation range. The number is used
        as a durability estimator. For instance, if c=2, 2 OSDs can be down without losing data.
  required: [name, data-chunks, coding-chunks]
  additionalProperties: false
get-erasure-profile:
  description: Display an erasure code profile.
  params:
    name: 
      type: string
      description: The name of the profile
  required: [name]
  additionalProperties: false
delete-erasure-profile:
  description: Deletes an erasure code profile.
  params:
    name:
      type: string
      description: The name of the profile
  required: [name]
  additionalProperties: false
list-erasure-profiles:
  description: List the names of all erasure code profiles
  additionalProperties: false
list-pools:
  description: List your cluster's pools
  additionalProperties: false
set-pool-max-bytes:
  description: Set pool quotas for the maximum number of bytes.
  params:
    max: 
      type: integer
      description: The name of the pool
    pool-name:
      type: string
      description: The name of the pool
  required: [pool-name, max]
  additionalProperties: false
delete-pool:
  description: Deletes the named pool
  params:
    pool-name:
      type: string
      description: The name of the pool
  required: [pool-name]
  additionalProperties: false
rename-pool:
  description: Rename a pool
  params:
    pool-name:
      type: string
      description: The name of the pool
    new-name:
      type: string
      description: The new name of the pool
  required: [pool-name, new-name]
  additionalProperties: false
pool-statistics:
  description: Show a pool's utilization statistics
  additionalProperties: false
snapshot-pool:
  description: Snapshot a pool
  params:
    pool-name: 
      type: string
      description: The name of the pool
    snapshot-name: 
      type: string
      description: The name of the snapshot
  required: [snapshot-name, pool-name]
  additionalProperties: false
remove-pool-snapshot:
  description: Remove a pool snapshot
  params:
    pool-name: 
      type: string
      description: The name of the pool
    snapshot-name: 
      type: string
      description: The name of the snapshot
  required: [snapshot-name, pool-name]
  additionalProperties: false
pool-set:
  description: Set a value for the pool
  params:
    pool-name:
      type: string
      description: The pool to set this variable on.
    key:
      type: string
      description: Any valid Ceph key from http://docs.ceph.com/docs/master/rados/operations/pools/#set-pool-values
    value:
      type: string
      description: The value to set
  required: [key, value, pool-name]
  additionalProperties: false
pool-get:
  description: Get a value for the pool
  params:
    pool-name:
      type: string
      description: The pool to get this variable from.
    key:
      type: string
      description: Any valid Ceph key from http://docs.ceph.com/docs/master/rados/operations/pools/#get-pool-values
  required: [key, pool-name]
  additionalProperties: false
