Endpoint

/v2/replication/target-relationships/{id}/make-writable

POST

Revert target directory to the latest recovery point to ensure that it is in a point-in-time consistent state. Then disconnect the specified target replication relationship, breaking the relationship with the source and making the target directory writable. The revert action may take some time to complete. If the relationship is later reconnected, any changes made to the target directory since the relationship was disconnected will be reverted upon reconnecting.

Parameters

Name Description Required
id Relationship identifier Yes

Response

Codes

Code Description
200 Return value on success

Schema

{
  "description": "api_target_relationship_status",
  "type": "object",
  "properties": {
    "id": {
      "description": "Unique identifier of the replication relationship",
      "type": "string"
    },
    "state": {
      "type": "string",
      "enum": [
        "AWAITING_AUTHORIZATION",
        "DISCONNECTED",
        "DISCONNECTING",
        "ENDED",
        "ESTABLISHED",
        "RECONNECTING",
        "REESTABLISHING"
      ],
      "description": "Current state of replication relationship:\n * `AWAITING_AUTHORIZATION` - AWAITING_AUTHORIZATION,\n * `DISCONNECTED` - DISCONNECTED,\n * `DISCONNECTING` - DISCONNECTING,\n * `ENDED` - ENDED,\n * `ESTABLISHED` - ESTABLISHED,\n * `RECONNECTING` - RECONNECTING,\n * `REESTABLISHING` - REESTABLISHING"
    },
    "end_reason": {
      "description": "If the relationship has ENDED, this states the reason. Otherwise, this field is empty",
      "type": "string"
    },
    "source_cluster_name": {
      "description": "Name of the source cluster",
      "type": "string"
    },
    "source_cluster_uuid": {
      "description": "UUID of the source cluster",
      "type": "string"
    },
    "source_root_path": {
      "description": "Path to the source directory",
      "type": "string"
    },
    "source_root_read_only": {
      "description": "Whether the source directory is read-only",
      "type": "boolean"
    },
    "source_address": {
      "description": "The previously connected source IP address",
      "type": "string"
    },
    "source_port": {
      "description": "Network port previously used to replicate to on the source",
      "type": "number"
    },
    "target_cluster_name": {
      "description": "Name of the target cluster",
      "type": "string"
    },
    "target_cluster_uuid": {
      "description": "UUID of the target cluster",
      "type": "string"
    },
    "target_root_path": {
      "description": "Path to the target directory",
      "type": "string"
    },
    "target_root_read_only": {
      "description": "Whether the target directory is read-only",
      "type": "boolean"
    },
    "job_state": {
      "type": "string",
      "enum": [
        "REPLICATION_NOT_RUNNING",
        "REPLICATION_RUNNING"
      ],
      "description": "Current state of the job:\n * `REPLICATION_NOT_RUNNING` - REPLICATION_NOT_RUNNING,\n * `REPLICATION_RUNNING` - REPLICATION_RUNNING"
    },
    "job_start_time": {
      "description": "If the job state is REPLICATION_RUNNING, this is the time that the job started, encoded as RFC 3339",
      "type": "string"
    },
    "recovery_point": {
      "description": "The time that the last successful job started, encoded as RFC 3339",
      "type": "string"
    },
    "error_from_last_job": {
      "description": "The error message from the previous job. If the previous job succeeded or no job has ever run, this field will be empty",
      "type": "string"
    },
    "duration_of_last_job": {
      "description": "The elapsed execution time of the previous job, in nanoseconds. If no job has ever run, this field will be null.",
      "type": "object",
      "properties": {
        "nanoseconds": {
          "description": "nanoseconds",
          "type": "string"
        }
      }
    },
    "target_root_id": {
      "description": "File ID of the target directory",
      "type": "string"
    },
    "replication_enabled": {
      "description": "Whether automatic replication is enabled",
      "type": "boolean"
    },
    "replication_job_status": {
      "description": "Information about the progress of a job. This field is null if there is no job status available.",
      "type": "object",
      "properties": {
        "percent_complete": {
          "description": "Percent of way through the job, computed from a weighting of data and files processed",
          "type": "number"
        },
        "estimated_seconds_remaining": {
          "description": "Estimated number of seconds remaining in the job, derived from percent_complete. This may be null if there is no estimate.",
          "type": "string"
        },
        "bytes_transferred": {
          "description": "Number of bytes copied",
          "type": "string"
        },
        "bytes_unchanged": {
          "description": "Number of bytes not copied because they didn't change",
          "type": "string"
        },
        "bytes_remaining": {
          "description": "Number of bytes left to be processed in order to complete this job",
          "type": "string"
        },
        "bytes_deleted": {
          "description": "Number of bytes deleted",
          "type": "string"
        },
        "bytes_total": {
          "description": "Total number of bytes that will be processed during this job (this will be close but not exact)",
          "type": "string"
        },
        "files_transferred": {
          "description": "Number of files copied",
          "type": "string"
        },
        "files_unchanged": {
          "description": "Number of files not copied because they didn't change",
          "type": "string"
        },
        "files_remaining": {
          "description": "Number of files left to be processed in order to complete this job",
          "type": "string"
        },
        "files_deleted": {
          "description": "Number of files deleted",
          "type": "string"
        },
        "files_total": {
          "description": "Total number of files that will be processed during this job (this will be close but not exact)",
          "type": "string"
        },
        "throughput_overall": {
          "description": "Overall average throughput in bytes per second of data copied since the beginning of the job",
          "type": "string"
        },
        "throughput_current": {
          "description": "Average throughput in bytes per second of data copied in the last one minute",
          "type": "string"
        }
      }
    },
    "recovery_point_snapshot": {
      "description": "The snapshot that the last successful job replicated. If no replication job has ever run successfully, this field is set to null.",
      "type": "object",
      "properties": {
        "id": {
          "description": "Unique identifier of the snapshot",
          "type": "number"
        },
        "name": {
          "description": "Name of the snapshot",
          "type": "string"
        },
        "timestamp": {
          "description": "Creation timestamp of the snapshot, encoded as RFC 3339, which is a normalized subset of ISO 8601. See http://tools.ietf.org/rfc/rfc3339.txt, section 5.6 for ABNF.",
          "type": "string"
        },
        "directory_name": {
          "description": "Snapshot directory name, as would be seen in the .snapshot directory over SMB or NFS.",
          "type": "string"
        },
        "source_file_id": {
          "description": "Source directory of the snapshot",
          "type": "string"
        },
        "created_by_policy": {
          "description": "This snapshot was created by a policy. The name of that policy will be stored in the name field in place of a user-defined name.",
          "type": "boolean"
        },
        "expiration": {
          "description": "Time at which snapshot will be expired. Empty string if no expiration time set. Encoded as RFC 3339, which is a normalized subset of ISO 8601. See http://tools.ietf.org/rfc/rfc3339.txt, section 5.6 for ABNF.",
          "type": "string"
        },
        "in_delete": {
          "description": "Whether or not the snapshot is in the process of being deleted",
          "type": "boolean"
        }
      }
    },
    "lock_key": {
      "description": "The key that locks the policy-created snapshots for the specified target replication relationship. If set to null, the system does not lock the snapshots that the specified target replication relationship creates. Only snapshots created by a policy will be locked. Unless you configure an expiration on the snapshot policy on the target cluster, the system does not lock snapshots. If you reverse the relationship (switch the source and the target), the new target does not use this lock key. To enable snapshot locking, you must configure the new target separately. However, if you revert the reversed relationship (return the source and target to their original assignments), the system preserves the original target replication relationship lock key. Unless you reverse the relationship, you cannot disable or delete a lock key while a target replication relationship uses the key. If you disable or delete a lock key while the relationship is reversed and you then revert the reversal, the original source-target relationship has no lock key until you configure a new one.",
      "type": "string"
    }
  }
}