swagger: '2.0'
x-endpoint-name: replicationmanager
x-products: CDP
x-form-factors: public
x-cdp-releases: PUBLIC
x-audit: true
info:
  version: 0.9.161
  title: Cloudera Replication Manager Service
  license:
    name: Apache 2.0
  description: Create and manage replication policies using Cloudera Replication Manager.
  termsOfService: https://www.cloudera.com/legal/commercial-terms-and-conditions.html
schemes:
  - https
consumes:
  - application/json
produces:
  - application/json
paths:
  /api/v1/replicationmanager/listClusters:
    post:
      summary: Lists all clusters.
      description: Provides a detailed list of all available clusters.
      operationId: listClusters
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ListClustersRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ListClustersResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/listClusterServiceStatuses:
    post:
      summary: Lists Cluster Service Statuses.
      description: Provides a list of cluster service (e.g. HDFS, Hive, YARN, etc.) statuses.
      operationId: listClusterServiceStatuses
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ListClusterServiceStatusesRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ListClusterServiceStatusesResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/listAllCredentials:
    post:
      summary: Lists Cloud Credentials.
      description: Provides a detailed list of cloud credentials across all available clusters.
      operationId: listAllCredentials
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ListAllCredentialsRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ListAllCredentialsResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/getCredentials:
    post:
      summary: Get Cloud Credentials from a Cluster.
      description: Returns cloud credentials on a specific cluster.
      operationId: getCredentials
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/GetCredentialsRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/GetCredentialsResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/createAwsCredential:
    post:
      summary: Create an AWS Cloud Credential.
      description: Creates a new AWS cloud credential.
      operationId: createAwsCredential
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateAwsCredentialRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/CreateAwsCredentialResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/createAbfsCredential:
    post:
      summary: Create an ABFS Cloud Credential.
      description: Creates a new ABFS cloud credential.
      operationId: createAbfsCredential
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateAbfsCredentialRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/CreateAbfsCredentialResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/deleteCredential:
    post:
      summary: Delete Cloud Credential.
      description: Permanently deletes a specific cloud credential.
      operationId: deleteCredential
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/DeleteCredentialRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/DeleteCredentialResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/getClusterConfig:
    post:
      summary: Get configuration of a cluster.
      description: Retrieves configuration of a specific cluster.
      operationId: getClusterConfig
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/GetClusterConfigRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/GetClusterConfigResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/listPolicies:
    post:
      summary: Get All Replication Policies.
      description: Provides a list of all replication policies across all available clusters.
      operationId: listPolicies
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ListPoliciesRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ListPoliciesResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/deletePolicy:
    post:
      summary: Delete Replication Policy.
      description: Permanently deletes a specific replication policy.
      operationId: deletePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/DeletePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/DeletePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/createPolicy:
    post:
      summary: Create a Replication Policy.
      description: Creates a new replication policy with the given name on a specific cluster.
      operationId: createPolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreatePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/CreatePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/suspendPolicy:
    post:
      summary: Stop all replication tasks defined by the policy.
      description: Stops all replication tasks defined by the policy. Replication will resume after activating the policy.
      operationId: suspendPolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/SuspendPolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/SuspendPolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/activatePolicy:
    post:
      summary: Resume all replication tasks defined by the policy.
      description: Resumes all replication tasks defined by the policy if the policy is currently suspended.
      operationId: activatePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ActivatePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ActivatePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/createHbasePolicy:
    post:
      summary: Create an HBase Replication Policy.
      description: Creates a new HBase replication policy with the given name on a specific cluster.
      operationId: createHbasePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/CreateHbasePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/CreateHbasePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/updateHbasePolicy:
    post:
      summary: Update an HBase Replication Policy.
      description: Updates an existing HBase replication policy with the given parameters on a specific cluster.
      operationId: updateHbasePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/UpdateHbasePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/UpdateHbasePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/continueHbaseSetup:
    post:
      summary: Continue the setup of an HBase policy.
      description: Continues the setup of an HBase policy. If an HBase policy has a Classic Cluster source, the HBase service on the source will not be restarted automatically. The restart on the source needs to be executed manually, and then the continue setup step has to be called. There is no need to call this command if the source cluster is not a Classic Cluster.
      operationId: continueHbaseSetup
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ContinueHbaseSetupRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ContinueHbaseSetupResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/suspendHbasePolicy:
    post:
      summary: Suspend an HBase replication policy.
      description: Pauses an active HBase replication policy. Note that if the destination cluster's Cloudera Manager API version is higher than 50 then it suspends all HBase replication policies between the same source and destination cluster, while if it is less than 45 then it only suspends the selected policy. Suspend is not available for versions between 45 and 50.
      operationId: suspendHbasePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/SuspendHbasePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/SuspendHbasePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/activateHbasePolicy:
    post:
      summary: Resume a suspended HBase replication policy.
      description: Resumes an HBase replication policy if it has previously been suspended. Note that if the destination cluster's Cloudera Manager API version is higher than 50 then it resumes all HBase replication policies between the same source and destination cluster, while if it is less than 45 then it only resumes the selected policy. Resume is not available for versions between 45 and 50.
      operationId: activateHbasePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ActivateHbasePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ActivateHbasePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/deleteHbasePolicy:
    post:
      summary: Delete an HBase Replication Policy.
      description: Permanently deletes a specific HBase replication policy.
      operationId: deleteHbasePolicy
      x-mutating: true
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/DeleteHbasePolicyRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/DeleteHbasePolicyResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/listPairedHbaseClusters:
    post:
      summary: List cluster CRNs which have an active HBase policy.
      description: Provides a list of cluster CRNs with active HBase policies.
      operationId: listPairedHbaseClusters
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/ListPairedHbaseClustersRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/ListPairedHbaseClustersResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/verifyHbaseClusterPair:
    post:
      summary: Verify a source-destination cluster pair for HBase policy creation.
      description: Returns whether the cluster pair is ready for policy creation, or if there are some manual steps that need to be performed before.
      operationId: verifyHbaseClusterPair
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/VerifyHbaseClusterPairRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/VerifyHbaseClusterPairResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/downloadDiagnosticBundle:
    post:
      summary: Download diagnostic bundle for a policy.
      description: Downloads the previously collected diagnostic bundle if available. Before calling, the get-command-status command shall be polled until the command's status shows 'DOWNLOADABLE_WITH_CLI'. If the status is 'DOWNLOADABLE_WITH_URL', the result can be downloaded with the given result data URL only.
      operationId: downloadDiagnosticBundle
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/DownloadDiagnosticBundleRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/DownloadDiagnosticBundleResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/collectDiagnosticBundle:
    post:
      summary: Collect diagnostic bundle for a policy.
      description: Triggers the collection of diagnostic bundle for a policy.
      operationId: collectDiagnosticBundle
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/CollectDiagnosticBundleRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/CollectDiagnosticBundleResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
  /api/v1/replicationmanager/getCommandStatus:
    post:
      summary: Get the status of the given CM command.
      description: Return the current status of the given CM command.
      operationId: getCommandStatus
      x-mutating: false
      parameters:
        - name: input
          in: body
          required: true
          schema:
            $ref: '#/definitions/GetCommandStatusRequest'
      responses:
        200:
          description: Describes a successful response to a valid request.
          schema:
            $ref: '#/definitions/GetCommandStatusResponse'
        default:
          description: The default response on an error.
          schema:
            $ref: '#/definitions/Error'
definitions:
  Error:
    type: object
    description: An object returned on an error.
    properties:
      code:
        type: string
        description: The error code.
      message:
        type: string
        description: The error message.
  ListClustersRequest:
    type: object
    description: Request to list clusters.
  ListClustersResponse:
    type: object
    description: Response object for list clusters request.
    required:
      - unreachableClusters
      - clusters
    properties:
      unreachableClusters:
        description: List of errors for unreachable clusters.
        type: array
        items:
          $ref: '#/definitions/ApiError'
      clusters:
        type: array
        description: List of clusters.
        items:
          $ref: '#/definitions/Cluster'
  ListClusterServiceStatusesRequest:
    type: object
    description: Request object to list cluster statuses.
  ListClusterServiceStatusesResponse:
    type: object
    description: Response object for listing of cluster statuses.
    properties:
      statuses:
        type: array
        description: List of statuses by cluster.
        items:
          $ref: '#/definitions/ClusterServiceStatuses'
  ListAllCredentialsRequest:
    type: object
    description: Request object for listing all cloud credentials on all clusters.
  ListAllCredentialsResponse:
    type: object
    description: Response object for list credentials request.
    required:
      - unreachableClusters
      - credentials
    properties:
      unreachableClusters:
        description: List of errors for unreachable clusters.
        type: array
        items:
          $ref: '#/definitions/ApiError'
      credentials:
        description: List of credentials by cluster.
        type: array
        items:
          $ref: '#/definitions/CredentialsResponse'
  GetCredentialsRequest:
    type: object
    description: Request object to retrieve specific cloud credentials.
    required:
      - clusterCrn
    properties:
      clusterCrn:
        description: CRN of the cluster where the credential is.
        type: string
      credentialName:
        description: Name of the credential. If both name and Id are specified, the Id is considered.
        type: string
      credentialId:
        description: Id of the credential. If both name and Id are specified, the Id is considered.
        type: string
  GetCredentialsResponse:
    type: object
    description: Response for credential request.
    properties:
      credentials:
        type: array
        description: List of credentials.
        items:
          $ref: '#/definitions/CredentialDetails'
  DeleteCredentialRequest:
    type: object
    description: Request object for deleting a credential.
    required:
      - name
    properties:
      name:
        description: Name of the cloud credential to delete.
        type: string
  DeleteCredentialResponse:
    type: object
    description: Response object for delete credential operation.
    properties:
      errors:
        description: The list of response errors in case of a partial failure while deleting the credential.
        type: array
        items:
          $ref: '#/definitions/ApiError'
  CreateAwsCredentialRequest:
    type: object
    description: Request object for creating AWS IAM or Access & Secret Key cloud credentials.
    required:
      - name
      - clusters
      - type
    properties:
      name:
        description: Name of the credential.
        type: string
      clusters:
        description: List of cluster CRNs where the credential should be created.
        type: array
        items:
          type: string
      type:
        description: 'Type of the credential. Additional required parameters by type: IAM: none; ACCESSKEY: accessKey, secretKey. Superfluous parameters are ignored. Providing IAM will create an IAM Role-based Authentication account in Cloudera Manager. Providing ACCESSKEY will create an AWS Access Key Authentication account in Cloudera Manager.'
        $ref: '#/definitions/AwsCloudCredentialType'
      accessKey:
        description: AWS access key.
        type: string
        x-sensitive: true
      secretKey:
        description: AWS secret key.
        type: string
        x-sensitive: true
  CreateAwsCredentialResponse:
    type: object
    description: Response object for creating AWS credentials.
    properties:
      errors:
        description: The list of response errors in case of a partial failure while creating the credential.
        type: array
        items:
          $ref: '#/definitions/ApiError'
  CreateAbfsCredentialRequest:
    type: object
    description: 'Request object for creating ABFS cloud credentials. Currently supported cloud credentials: ABFS Access Key for Ambari clusters, ABFS Client Secret for CM clusters.'
    required:
      - name
      - clusters
      - type
    properties:
      name:
        description: Name of the credential.
        type: string
      clusters:
        description: List of cluster CRNs where the credential should be created.
        type: array
        items:
          type: string
      type:
        description: 'Type of the credential. Additional required parameters by type: ACCESSKEY: storageAccountName, accessKey; CLIENTKEY: clientId, clientSecretKey, tenantId. Superfluous parameters are ignored. Providing ACCESSKEY will create an ABFS Access Key based account in Ambari. Providing CLIENTKEY will create an Azure Active Directory Service Principal account in Cloudera Manager. ACCESSKEY is only supported on Ambari, while CLIENTKEY is only supported on Cloudera Manager.'
        $ref: '#/definitions/AbfsCloudCredentialType'
      accessKey:
        description: ABFS access key.
        type: string
        x-sensitive: true
      storageAccountName:
        description: ABFS storage account name.
        type: string
      clientId:
        description: Client ID of an Active Directory service principal account.
        type: string
      clientSecretKey:
        description: Client Key of an Active Directory service principal account.
        type: string
        x-sensitive: true
      tenantId:
        description: Tenant ID of an Active Directory service principal account.
        type: string
  CreateAbfsCredentialResponse:
    type: object
    description: Response object for creating ABFS credentials.
    properties:
      errors:
        description: The list of response errors in case of a partial failure while creating the credential.
        type: array
        items:
          $ref: '#/definitions/ApiError'
  GetClusterConfigRequest:
    type: object
    description: Request object for getClusterConfig.
    required:
      - clusterCrn
    properties:
      clusterCrn:
        type: string
        description: The CRN of the cluster.
  GetClusterConfigResponse:
    type: object
    description: Response object for getClusterConfig.
    properties:
      clusterCrn:
        description: The CRN of the cluster.
        type: string
      cmApiVersion:
        description: Cloudera Manager API version.
        type: integer
        format: int32
      underlyingFsForHive:
        description: Underlying file system for Hive.
        type: string
        enum:
          - HDFS
          - S3
          - WASB
          - ABFS
          - GCS
      dmx:
        description: Configuration related to DMX.
        type: object
        properties:
          hbaseSuspend:
            description: Suspend type for HBase policies.
            $ref: '#/definitions/HbaseSuspendType'
      featureSupport:
        description: A map of available features and whether they are supported on the cluster.
        type: object
        additionalProperties:
          type: boolean
      services:
        description: A list of service configurations.
        type: array
        items:
          $ref: '#/definitions/ServiceConfiguration'
  ServiceConfiguration:
    description: Configuration related to a service.
    type: object
    properties:
      name:
        description: The name of the service.
        type: string
      configs:
        description: Service configuration map.
        type: object
        additionalProperties:
          type: string
  HbaseSuspendType:
    description: Describes how suspend and resume affects HBase policies on the cluster. 'ALL' means that suspend/resume affects all HBase policies with the same source and destination cluster, while 'POLICY' means that only the selected policy gets suspended/resumed. 'NOT_SUPPORTED' means that this feature is not available on the cluster.
    type: string
    enum:
      - POLICY
      - ALL
      - NOT_SUPPORTED
  ListPoliciesRequest:
    type: object
    description: Request object for listing all policies.
  ListPoliciesResponse:
    type: object
    description: Response object for a list policies request.
    required:
      - unreachableClusters
      - policyErrors
      - policies
    properties:
      unreachableClusters:
        description: List of errors for unreachable clusters.
        type: array
        items:
          $ref: '#/definitions/ApiError'
      policyErrors:
        description: List of policy errors.
        type: array
        items:
          $ref: '#/definitions/ApiError'
      policies:
        description: List of policies.
        type: array
        items:
          $ref: '#/definitions/Policy'
  DeletePolicyRequest:
    type: object
    description: Delete a replication policy.
    required:
      - clusterCrn
      - policyName
    properties:
      clusterCrn:
        type: string
        description: CRN of the cluster where the policy is.
      policyName:
        type: string
        description: Policy name to delete.
  DeletePolicyResponse:
    type: object
    description: Response object for deletePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      requestId:
        type: string
        description: The ID of the request. Populated only for Ambari backend.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  CreatePolicyRequest:
    type: object
    description: Create a replication policy.
    required:
      - clusterCrn
      - policyName
      - policyDefinition
    properties:
      clusterCrn:
        type: string
        description: CRN of the cluster where the policy will be created.
      policyName:
        type: string
        description: Name of the new policy.
      policyDefinition:
        description: Policy definition.
        $ref: '#/definitions/PolicyDefinition'
  CreatePolicyResponse:
    type: object
    description: Response object for createPolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      requestId:
        type: string
        description: The ID of the request. Populated only for Ambari backend.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  CreateHbasePolicyRequest:
    type: object
    description: Create an HBase replication policy.
    required:
      - clusterCrn
      - policyName
      - policyDefinition
    properties:
      clusterCrn:
        description: CRN of the destination cluster.
        type: string
      policyName:
        type: string
        description: Name of the new policy.
      policyDefinition:
        description: Policy definition.
        $ref: '#/definitions/HbasePolicyDefinition'
  CreateHbasePolicyResponse:
    type: object
    description: Response object for createHbasePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  UpdateHbasePolicyRequest:
    type: object
    description: Update HBase replication policy request.
    required:
      - clusterCrn
      - policyId
      - updateHbasePolicyDefinition
    properties:
      clusterCrn:
        type: string
        description: The CRN of the cluster where the policy will be updated.
      policyId:
        type: string
        description: The ID of the policy to be updated.
      updateHbasePolicyDefinition:
        description: The policy definition.
        $ref: '#/definitions/UpdateHbasePolicyDefinition'
  UpdateHbasePolicyDefinition:
    type: object
    description: HBase policy update request definition.
    properties:
      name:
        type: string
        description: The policy name.
      description:
        type: string
        description: Description of the policy.
      tables:
        description: List of tables to be replicated. The items should be in "namespace:tablename" format.
        x-default: null
        type: array
        items:
          type: string
  UpdateHbasePolicyResponse:
    type: object
    description: Response object for updateHbasePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      requestId:
        type: string
        description: The ID of the request. Populated only for Ambari backend.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request (Successful or an error).
  ContinueHbaseSetupRequest:
    type: object
    description: Continue an HBase setup for Classic Cluster source.
    required:
      - clusterCrn
      - policyId
    properties:
      clusterCrn:
        type: string
        description: The CRN of the destination cluster.
      policyId:
        type: string
        description: The ID of the HBase policy.
  ContinueHbaseSetupResponse:
    type: object
    description: Response object for continueHbaseSetup.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  ActivateHbasePolicyRequest:
    type: object
    description: Activate an HBase replication policy.
    required:
      - clusterCrn
      - policyId
    properties:
      clusterCrn:
        type: string
        description: CRN of the destination cluster.
      policyId:
        type: string
        description: ID of the HBase policy.
  ActivateHbasePolicyResponse:
    type: object
    description: Response object for activateHbasePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  SuspendHbasePolicyRequest:
    type: object
    description: Suspend an HBase replication policy.
    required:
      - clusterCrn
      - policyId
    properties:
      clusterCrn:
        type: string
        description: CRN of the destination cluster.
      policyId:
        type: string
        description: ID of the HBase policy.
  SuspendHbasePolicyResponse:
    type: object
    description: Response object for suspendHbasePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  DeleteHbasePolicyRequest:
    type: object
    description: Request object to delete an HBase replication policy.
    required:
      - clusterCrn
      - policyId
    properties:
      clusterCrn:
        type: string
        description: CRN of the destination cluster.
      policyId:
        type: string
        description: ID of the HBase policy.
      force:
        type: boolean
        description: Option to force delete an Hbase policy. It should be used if the normal delete fails (e.g. when the source cluster is unreachable).
  DeleteHbasePolicyResponse:
    type: object
    description: Response object for deleteHbasePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  ListPairedHbaseClustersRequest:
    type: object
    description: Request to list all paired HBase cluster CRNs.
  ListPairedHbaseClustersResponse:
    type: object
    description: Response object for listPairedHbaseClusters.
    properties:
      pairings:
        description: The list of CRN pairings.
        type: array
        items:
          $ref: '#/definitions/HbaseCrnPairs'
      crnsMissingHbaseService:
        description: Cluster CRNs where the HBase service was missing and pairing status could not be determined.
        type: array
        items:
          type: string
      unreachableClusters:
        description: The list of errors for unreachable clusters.
        type: array
        items:
          $ref: '#/definitions/ApiError'
  VerifyHbaseClusterPairRequest:
    type: object
    description: Request to verify a cluster pairing for HBase policy creation prerequisites.
    required:
      - sourceClusterCrn
      - destinationClusterCrn
    properties:
      sourceClusterCrn:
        type: string
        description: CRN of the source cluster.
      destinationClusterCrn:
        type: string
        description: CRN of the destination cluster.
  VerifyHbaseClusterPairResponse:
    type: object
    description: Response object for verifyHbaseClusterPair.
    properties:
      pairingStatus:
        description: The current status of pairing.
        type: string
      pairedStatus:
        description: Substatus of an active pairing. Indicates if a pairing is resettable or in an erroneous state.
        type: string
      pairingMessage:
        description: Description of the pairing status.
        type: string
      beforePolicySteps:
        description: Manual steps to perform before HBase policy creation.
        type: object
        properties:
          summary:
            description: Summary of the steps to perform.
            type: string
          documentationLink:
            description: Link to the HBase replication manual steps documentation.
            type: string
          source:
            description: Steps to perform for the source cluster.
            $ref: '#/definitions/VerificationSteps'
          destination:
            description: Steps to perform for the destination cluster.
            $ref: '#/definitions/VerificationSteps'
      afterPolicySteps:
        description: Manual steps to perform after HBase policy creation.
        type: object
        properties:
          summary:
            description: Summary of the steps to perform.
            type: string
          source:
            description: Steps to perform for the source cluster.
            $ref: '#/definitions/VerificationSteps'
          destination:
            description: Steps to perform for the destination cluster.
            $ref: '#/definitions/VerificationSteps'
  SuspendPolicyRequest:
    type: object
    description: Suspend a replication policy.
    required:
      - clusterCrn
      - policyName
    properties:
      clusterCrn:
        type: string
        description: CRN of the cluster where the policy is.
      policyName:
        type: string
        description: Policy name to suspend.
  SuspendPolicyResponse:
    type: object
    description: Response object for suspendPolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      requestId:
        type: string
        description: The ID of the request. Populated only for Ambari backend.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  ActivatePolicyRequest:
    type: object
    description: Activate a replication policy.
    required:
      - clusterCrn
      - policyName
    properties:
      clusterCrn:
        type: string
        description: CRN of the cluster where the policy is.
      policyName:
        type: string
        description: Policy name to resume.
  ActivatePolicyResponse:
    type: object
    description: Response object for resumePolicy.
    properties:
      clusterCrn:
        type: string
        description: The CRN of the input cluster.
      requestId:
        type: string
        description: The ID of the request. Populated only for Ambari backend.
      message:
        type: string
        description: The detailed description of the action taken.
      status:
        type: string
        description: The status of the request.
  DownloadDiagnosticBundleRequest:
    type: object
    description: Request to download the diagnostic bundle for the given cluster and command id.
    required:
      - clusterCrn
      - commandId
    properties:
      clusterCrn:
        description: The CRN of the target cluster.
        type: string
      commandId:
        description: The command ID from the response of collect-diagnostic-bundle command.
        type: string
  DownloadDiagnosticBundleResponse:
    type: object
    description: Response object for download-diagnostic-bundle. On certain clusters this response will show if the download is only available directly from CM.
    properties:
      bundleFile:
        x-skip-logging: true
        description: Base64 encoded content of the diagnostic bundle zip file. A script like this can be used to save the response as file 'cat response.json | jq -r '.bundleFile' | base64 -D > bundle.zip'
        type: string
        format: byte
  CollectDiagnosticBundleRequest:
    type: object
    description: Triggers a diagnostic bundle collect command for the given cluster and policyName.
    required:
      - clusterCrn
      - policyName
    properties:
      clusterCrn:
        description: The CRN of the target cluster.
        type: string
      policyName:
        description: Name of the policy.
        type: string
  CollectDiagnosticBundleResponse:
    type: object
    description: Response object for collect-diagnostic-bundle.
    required:
      - commandId
    properties:
      commandId:
        description: ID of the diagnostic bundle collection command issued against the CM. Polling get-command-status with this command id returns the current state of the command.
        format: int64
        type: integer
      name:
        description: Name of the policy.
        type: string
      active:
        description: Whether the diagnostic bundle command is active.
        type: boolean
      startTime:
        description: Start time of the diagnostic bundle collection command.
        type: string
      resultMessage:
        description: Diagnostic bundle collection command result message.
        type: string
  GetCommandStatusRequest:
    type: object
    description: Get the current status of any CM command.
    required:
      - clusterCrn
      - commandId
    properties:
      clusterCrn:
        description: The CRN of the target cluster.
        type: string
      commandId:
        description: ID of a CM command on the cluster.
        type: string
  GetCommandStatusResponse:
    type: object
    description: Response object for get command status.
    required:
      - commandId
    properties:
      commandId:
        description: Id of the CM command.
        format: int64
        type: integer
      success:
        description: Whether the diagnostic collection is successful.
        type: boolean
      active:
        description: Whether the command is still active.
        type: boolean
      name:
        description: Name of the policy.
        type: string
      startTime:
        description: Start time of the CM command.
        type: string
      endTime:
        description: End time of the CM command.
        type: string
      resultDataUrl:
        description: Some commands have result data URL for downloading the diagnostic bundle. On certain CM versions the bundle download is only available through this URL, but not with download-diagnostic-bundle operation.
        type: string
      resultMessage:
        description: Result message of the command.
        type: string
      bundleStatus:
        description: The current status of the command.
        type: string
        enum:
          - IN_PROGRESS
          - DOWNLOADABLE_WITH_URL
          - DOWNLOADABLE_WITH_CLI
          - FAILED
      bundleStatusMessage:
        description: Further information about the current command status.
        type: string
  ApiError:
    type: object
    description: API error.
    required:
      - code
      - message
      - status
    properties:
      code:
        type: integer
        format: int32
        description: Error code.
      message:
        description: Error message.
        type: string
      status:
        description: Error status.
        type: string
      clusterUrl:
        type: string
        description: Cluster URL.
      requestId:
        description: Request ID.
        type: string
  ClusterServiceStatuses:
    type: object
    description: Describes the status of services running on a cluster.
    required:
      - clusterCrn
      - serviceStatuses
    properties:
      clusterCrn:
        description: Cluster CRN.
        type: string
      serviceStatuses:
        description: List of service statuses.
        type: array
        items:
          $ref: '#/definitions/ServiceInfo'
  Cluster:
    type: object
    description: Describes a Datalake, Datahub or Classic cluster.
    required:
      - crn
      - name
      - dataCenter
      - clusterType
      - replicationEngineType
      - clusterManagerType
      - clusterManagerUrl
      - clusterUrl
    properties:
      crn:
        description: Cluster CRN.
        type: string
      name:
        description: Cluster name.
        type: string
      dataCenter:
        description: Cluster data center.
        type: string
      clusterType:
        description: Cluster type.
        type: string
        enum:
          - CLASSIC
          - SDX
          - DISTROX
      replicationEngineType:
        description: Replication engine type.
        type: string
        enum:
          - CM
          - DLM_ENGINE
      clusterManagerType:
        description: Cluster Manager type.
        type: string
        enum:
          - CLOUDERA_MANAGER
          - AMBARI
      clusterManagerUrl:
        description: Cluster Manager URL.
        type: string
      clusterUrl:
        description: Cluster URL.
        type: string
      totalHosts:
        description: Total hosts on the cluster.
        type: integer
        format: int32
      location:
        description: Cluster location.
        $ref: '#/definitions/Location'
      stackCrn:
        description: Stack CRN.
        type: string
      description:
        description: Cluster description.
        type: string
      stackMajorVersion:
        description: Stack major version.
        type: string
      stackVersion:
        description: Stack version.
        type: string
      uuid:
        description: Cluster UUID from Cloudera Manager if the cluster has CM backend.
        type: string
      environmentCrn:
        description: CRN of the cluster's environment.
        type: string
      knoxUrl:
        description: Knox URL if the cluster was registered with one, null otherwise.
        type: string
      cloudAccountProvider:
        description: Cloud account provider.
        type: string
        enum:
          - AWS
          - ADLS
          - WASB
          - ABFS
          - GCS
      cmName:
        description: Cloudera Manager name.
        type: string
      codProperties:
        description: Additional properties for operational databases.
        $ref: '#/definitions/CodProperties'
  Location:
    type: object
    description: Location object.
    required:
      - id
      - country
      - city
      - latitude
      - longitude
    properties:
      id:
        description: Location ID.
        type: integer
        format: int64
      country:
        description: Country.
        type: string
      city:
        description: City.
        type: string
      latitude:
        description: Latitude.
        type: number
        format: double
      longitude:
        description: Longitude.
        type: number
        format: double
  CodProperties:
    type: object
    description: Additional properties for operational databases.
    properties:
      operationalDatabaseName:
        description: Name of the corresponding operational database..
        type: string
  CustomConfigs:
    type: object
    description: Custom key/value configurations.
    required:
      - name
      - value
      - confidential
    properties:
      name:
        description: Name.
        type: string
      value:
        description: Value.
        type: string
      confidential:
        description: Whether the value is confidential.
        type: boolean
  CredentialsResponse:
    type: object
    description: Response object for cloud credentials.
    required:
      - clusterCrn
      - clusterUrl
      - replicationEngineType
      - credentials
    properties:
      clusterCrn:
        description: Cluster CRN.
        type: string
      clusterUrl:
        description: Cluster URL.
        type: string
      replicationEngineType:
        description: Replication engine type.
        type: string
        enum:
          - CM
          - DLMENGINE
      credentials:
        description: Cloud credentials.
        $ref: '#/definitions/CredentialCollection'
  CredentialCollection:
    type: object
    description: Cloud Credentials listing.
    required:
      - totalResults
      - results
      - credentials
    properties:
      totalResults:
        description: Total number cloud credentials.
        type: integer
        format: int64
      results:
        description: Number of cloud credentials in the response.
        type: integer
        format: int64
      credentials:
        description: Cloud credential details.
        type: array
        items:
          $ref: '#/definitions/CredentialDetails'
  CredentialDetails:
    type: object
    description: Cloud credential details for by-name or by-id cloud credential request.
    required:
      - id
      - name
      - provider
      - authType
      - creationTime
      - lastModifiedTime
    properties:
      id:
        description: Credential id.
        type: string
      name:
        description: Credential name.
        type: string
      provider:
        description: Credential provider.
        type: string
      authType:
        description: Authentication type.
        type: string
      creationTime:
        description: Creation time.
        type: string
        format: date-time
      lastModifiedTime:
        description: Last modified time.
        type: string
        format: date-time
      configs:
        description: Configurations.
        type: object
        additionalProperties:
          type: string
      customConfigs:
        description: Custom configurations.
        type: array
        items:
          $ref: '#/definitions/CustomConfigs'
  ServiceInfo:
    type: object
    description: Service status definition.
    required:
      - serviceName
      - status
    properties:
      serviceName:
        description: Service name.
        type: string
      status:
        description: Service status.
        type: string
  Policy:
    type: object
    description: Replication policy definition.
    required:
      - policyId
      - name
      - type
      - status
      - frequency
      - endTime
      - jobs
      - report
    properties:
      policyId:
        description: Policy id.
        type: string
      name:
        description: Policy name.
        type: string
      type:
        description: Policy type.
        type: string
      status:
        description: Current status of the policy.
        type: string
      frequency:
        description: Frequency in seconds when the policy runs.
        type: integer
        format: int64
      endTime:
        description: End time of policy run or when it repeats.
        type: string
        format: date-time
      jobs:
        description: List of policy runs.
        type: array
        items:
          $ref: '#/definitions/PolicyInstanceResponse'
      report:
        description: Policy report.
        $ref: '#/definitions/PolicyReport'
      description:
        description: Policy description.
        type: string
      executionType:
        description: Policy execution type.
        type: string
      sourceDataset:
        description: Source dataset of replication.
        type: array
        items:
          type: string
      targetDataset:
        description: Target dataset of replication.
        type: array
        items:
          type: string
      creationTime:
        description: Policy creation time.
        type: string
        format: date-time
      startTime:
        description: Policy start time.
        type: string
        format: date-time
      sourceCluster:
        description: Source cluster of replication.
        type: string
      sourceClusterCrn:
        description: CRN of the source cluster.
        type: string
      targetCluster:
        description: Target cluster of replication if not cloud.
        type: string
      targetClusterCrn:
        description: CRN of the target cluster.
        type: string
      customProperties:
        description: Custom replication properties.
        type: object
        additionalProperties:
          type: string
      plugins:
        description: Plugins.
        type: array
        x-default: null
        items:
          type: string
      nextRun:
        description: Next expected run of the policy.
        type: string
      target:
        description: Replication target details.
        $ref: '#/definitions/TargetDetails'
  PolicyInstanceResponse:
    type: object
    description: Policy execution details.
    required:
      - id
      - policyId
      - status
      - startTime
    properties:
      id:
        description: Policy instance command id.
        type: string
      policyId:
        description: Policy id.
        type: string
      status:
        description: Policy command status.
        type: string
      startTime:
        description: Command start time.
        type: string
        format: date-time
      endTime:
        description: Command end time.
        type: string
        format: date-time
      trackingInfo:
        description: JSON data to track polciy status.
        type: string
      message:
        description: Output of the policy command.
        type: string
      jobType:
        description: Job type.
        type: string
      totalSteps:
        description: Total number of steps.
        type: integer
        format: int32
      completedSteps:
        description: Number of completed steps.
        type: integer
        format: int32
  PolicyReportDetails:
    type: object
    description: Policy report details.
    required:
      - status
      - endTime
    properties:
      status:
        description: Status of the command.
        type: string
      endTime:
        description: End time.
        type: string
        format: date-time
  PolicyReport:
    type: object
    description: Policy report.
    properties:
      lastSucceededInstance:
        description: Last successful instance.
        $ref: '#/definitions/PolicyReportDetails'
      lastFailedInstance:
        description: Last failed instance.
        $ref: '#/definitions/PolicyReportDetails'
  TargetDetails:
    type: object
    description: Target details.
    required:
      - environmentCrn
    properties:
      environmentCrn:
        description: Target's environment CRN.
        type: string
      warehouseCrn:
        description: Target's warehouse CRN.
        type: string
  PolicyDefinition:
    type: object
    description: Policy creation request definition.
    required:
      - name
      - type
      - sourceDataset
      - frequencyInSec
    properties:
      name:
        description: Name of the new policy.
        type: string
      type:
        description: Policy replication type.
        type: string
        enum:
          - FS
          - HIVE
          - HBASE
      sourceDataset:
        description: Source dataset to replicate.
        $ref: '#/definitions/SourceDataset'
      frequencyInSec:
        description: Policy's frequency in seconds.
        type: integer
        format: int64
      targetDataset:
        description: Dataset to replicate to.
        type: string
      cloudCredential:
        description: Cloud credentials to use if replicating to Cloud.
        type: string
      sourceCluster:
        description: 'Name of source cluster in the format: "dataCenterName$cluster name", for example "DC-Europe$My Source 42.'
        type: string
      targetCluster:
        description: 'Name of destination cluster in the format: "dataCenterName$cluster name", for example "DC-US$My Destination 17".'
        type: string
      startTime:
        description: Start time.
        type: string
        format: date-time
      endTime:
        description: End time.
        type: string
        format: date-time
      distcpMaxMaps:
        description: Maximum Map jobs to use for replication.
        type: integer
        format: int64
      distcpMapBandwidth:
        description: Maximum bandwidth to use for replication.
        type: integer
        format: int64
      queueName:
        description: YARN queue name if not default.
        type: string
      tdeSameKey:
        description: TDE same key.
        type: boolean
      description:
        description: Description of the policy.
        type: string
      enableSnapshotBasedReplication:
        description: Enable snapshot based replication.
        type: boolean
      cloudEncryptionAlgorithm:
        description: The type of cloud encryption algorithm. Can be used only for HDP/Ambari managed clusters. Supported values are AES256,SSE-KMS.
        type: string
      cloudEncryptionKey:
        description: Cloud encryption key.
        type: string
      plugins:
        description: Plugins.
        type: array
        x-default: null
        items:
          type: string
      hiveExternalTableBaseDirectory:
        description: Hive external table base directory.
        type: string
      cmPolicySubmitUser:
        description: CM policy submit user.
        $ref: '#/definitions/CmPolicySubmitUser'
  SourceDataset:
    type: object
    description: Extra properties for the source dataset.
    properties:
      hdfsArguments:
        description: HDFS arguments for HDFS and Hive replication.
        $ref: '#/definitions/HdfsArguments'
      hiveArguments:
        description: Arguments for Hive replication, null if HDFS replication.
        $ref: '#/definitions/HiveArguments'
  HdfsArguments:
    type: object
    description: Extra properties for HDFS.
    properties:
      path:
        description: HDFS path. Mandatory for HDFS policies, otherwise optional.
        type: string
      replicationStrategy:
        description: Replication strategy.
        type: string
        enum:
          - DYNAMIC
          - STATIC
      mapReduceService:
        description: Name of the mapreduce service.
        type: string
      logPath:
        description: Job log path.
        type: string
      errorHandling:
        description: Error handling strategy.
        $ref: '#/definitions/ErrorHandling'
      preserve:
        description: Properties to preserve.
        $ref: '#/definitions/Preserve'
      deletePolicy:
        description: Deletion behavior.
        type: string
        enum:
          - KEEP_DELETED_FILES
          - DELETE_TO_TRASH
          - DELETE_PERMANENTLY
      alert:
        description: Alerting behavior.
        $ref: '#/definitions/Alert'
      exclusionFilters:
        description: Exclusion filters in glob format.
        type: array
        x-default: null
        items:
          type: string
  ErrorHandling:
    type: object
    description: Error handling behavior.
    required:
      - skipChecksumChecks
      - skipListingChecksumChecks
      - abortOnError
      - abortOnSnapshotDiffFailures
    properties:
      skipChecksumChecks:
        description: Skip checksum checks.
        type: boolean
      skipListingChecksumChecks:
        description: Skip checksum checks for copy-listing.
        type: boolean
      abortOnError:
        description: Abort policy on error.
        type: boolean
      abortOnSnapshotDiffFailures:
        description: Abort policy if there are snapshot diff failures.
        type: boolean
  Preserve:
    type: object
    description: Properties to preserve after replication.
    required:
      - blockSize
      - replicationCount
      - permissions
      - extendedAttributes
    properties:
      blockSize:
        description: Block size.
        type: boolean
      replicationCount:
        description: Replication count.
        type: boolean
      permissions:
        description: Permissions.
        type: boolean
      extendedAttributes:
        description: Extended attributes.
        type: boolean
  Alert:
    type: object
    description: Cloudera Manager alerting behavior.
    required:
      - onFailure
      - onStart
      - onSuccess
      - onAbort
    properties:
      onFailure:
        description: Alert on failure.
        type: boolean
      onStart:
        description: Alert on start.
        type: boolean
      onSuccess:
        description: ALert on success.
        type: boolean
      onAbort:
        description: Alert on abort.
        type: boolean
  HiveArguments:
    type: object
    description: Hive replication arguments.
    properties:
      databasesAndTables:
        description: Scope of the replication.
        type: array
        items:
          $ref: '#/definitions/HiveDatabaseAndTables'
      sentryPermissions:
        description: Include or exclude Sentry permissions.
        type: string
        enum:
          - INCLUDE
          - EXCLUDE
      skipUrlPermissions:
        description: Skip URL permissions.
        type: boolean
      numThreads:
        description: Number of threads to use during replication.
        type: integer
        format: int64
  HiveDatabaseAndTables:
    type: object
    description: Hive replication scope.
    required:
      - database
    properties:
      database:
        description: Database to replicate.
        type: string
      tablesIncludeRegex:
        description: Regex to match included tables.
        type: string
      tablesExcludeRegex:
        description: Regex to match excluded tables.
        type: string
  CmPolicySubmitUser:
    type: object
    description: CM Policy submit user.
    properties:
      userName:
        description: Username.
        type: string
      sourceUser:
        description: Source user.
        type: string
  HbasePolicyDefinition:
    type: object
    description: HBase policy definition.
    required:
      - hbasePolicyArguments
      - sourceCluster
      - targetCluster
      - initialSnapshot
    properties:
      hbasePolicyArguments:
        description: HBase policy arguments.
        $ref: '#/definitions/HbasePolicyArguments'
      sourceCluster:
        description: 'Name of source cluster in the format: "dataCenterName$cluster name", for example "DC-Europe$My Source 42."'
        type: string
      targetCluster:
        description: 'Name of destination cluster in the format: "dataCenterName$cluster name", for example "DC-US$My Destination 17".'
        type: string
      initialSnapshot:
        description: If set to true, the current data in the table will be replicated before the HBase replication peer gets enabled. If set to false, only the data changed after the policy creation will be replicated.
        type: boolean
      description:
        description: Description of the policy.
        type: string
      machineUser:
        description: Machine user details to use for the replication. If not specified, an internal machine user will be created and synchronized to the required environments.
        $ref: '#/definitions/MachineUser'
      queueName:
        description: YARN queue name to use for initial snapshot if not default.
        type: string
      distcpMaxMaps:
        description: Maximum Map jobs to use for initial snapshot.
        type: integer
        format: int64
      sourceRestartType:
        description: Type of restart for the source cluster. This is only accepted if the source is not a Classic Cluster and the destination has restart-type support. Default is ROLLING_RESTART.
        $ref: '#/definitions/RestartType'
      targetRestartType:
        description: Type of restart for the destination cluster. This is only accepted if the cluster has restart-type support. Default is ROLLING_RESTART.
        $ref: '#/definitions/RestartType'
  HbasePolicyArguments:
    type: object
    description: HBase replication parameters.
    properties:
      tables:
        description: List of tables to be replicated. The key should be in "namespace:tablename" format. If this list is empty, then the whole database will be replicated.
        type: array
        x-default: null
        items:
          type: string
      cloudCredential:
        description: Cloud credentials to use to replicate the initial snapshot if the credential location is specified as 'EXTERNAL_ACCOUNT'.
        type: string
      databaseArguments:
        description: Optional parameters used for HBase database replication.
        $ref: '#/definitions/HbaseDatabaseArguments'
  HbaseDatabaseArguments:
    type: object
    description: HBase database replication arguments.
    properties:
      replicationStrategy:
        description: Whether to replicate all tables or only the ones where the replication scope has been set. Defaults to ALL_TABLES.
        type: string
        enum:
          - ALL_TABLES
          - TABLES_WITH_REPLICATION_SCOPE_SET
  MachineUser:
    type: object
    description: Username and password for the machine user.
    required:
      - user
      - password
      - createUser
    properties:
      user:
        description: Username.
        type: string
      password:
        description: Password.
        x-sensitive: true
        type: string
      createUser:
        description: This option has no effect if the machine user already exists. Otherwise if 'true', a new machine user is created. If 'false', an error is returned indicating that the user does not exist.
        type: boolean
  HbaseCrnPairs:
    type: object
    description: HBase CRN pairs.
    properties:
      pairedCrns:
        description: The list of CRNs which are peers of each other.
        type: array
        items:
          type: string
  VerificationSteps:
    type: object
    description: Verification steps.
    properties:
      clusterManagerUrl:
        description: The cluster manager URL to reach the cluster's UI.
        type: string
      steps:
        description: The list of manual steps to perform or verify.
        type: array
        items:
          type: string
  AwsCloudCredentialType:
    type: string
    description: AWS cloud credential type.
    enum:
      - IAM
      - ACCESSKEY
  AbfsCloudCredentialType:
    type: string
    description: ABFS cloud credential type.
    enum:
      - ACCESSKEY
      - CLIENTKEY
  RestartType:
    type: string
    description: Type of restart for a cluster.
    enum:
      - RESTART
      - ROLLING_RESTART
