---
title: "Rename or clone project files"
method: PUT
path: "/v1/integration/projects/{projectId}/files/move"
tags: ["Unified Project Lifecycle APIs"]
---

# Rename or clone project files

`PUT /v1/integration/projects/{projectId}/files/move`

## Request

- Base URL: `https://integration-adapter.connect.cloud.precisely.com`
- URL: `https://integration-adapter.connect.cloud.precisely.com/v1/integration/projects/{projectId}/files/move`
- Auth: HTTP bearer

Renames or clones one or more project files in a single request, for either an Advanced Replication (DSL) project or a Mainframe Replication pipeline.

**Features:**
- `action=RENAME` moves each matched file to its new path and removes it from the old path; `action=CLONE` copies each matched file to the new path and leaves the original in place.
- Each entry's `currentFilePath`/`newFilePath` can target a single file, or — when `pathPrefix=true` on that entry — every file under a path prefix (for example renaming an entire `sources/` folder to `sources-legacy/` in one call).
- `conflictResolution` (Mainframe Replication only) controls what happens when a computed target path already exists: `REPLACE_ALL` overwrites every conflicting target, `IGNORE_ALL` skips every conflicting entry and reports it, `PARTIAL` applies the non-conflicting entries and reports the rest. Advanced Replication always reports conflicts individually instead.

**Use Cases:**
- VS Code extension renames a file via the project explorer.
- User duplicates a template file to bootstrap a new source definition.

**Authorization:** Requires `replication-pipeline::update` when permission harmonization is enabled; otherwise, `replication-pipeline::manage`.

## Path parameters

- `projectId` string, required

## Query parameters

- `projectType` 'REPLICATION' | 'MAINFRAME_REPLICATION' | 'ADVANCED_REPLICATION': Supported project types for unified project operations
- `pipelineId` string
- `revisionNumber` integer
- `action` 'RENAME' | 'CLONE': Action to perform when moving project files: RENAME moves a file to a new path, CLONE copies it while leaving the original in place
- `conflictResolution` 'REPLACE_ALL' | 'IGNORE_ALL' | 'PARTIAL': Strategy used when a rename or clone target path already exists (Mainframe Replication only): REPLACE_ALL overwrites every conflicting target, IGNORE_ALL skips every conflicting entry and reports it, PARTIAL applies the entries that do not conflict and reports the rest

## Request body

- ProjectFileMoveRequest: Request payload for renaming or cloning project files
  - `files` ProjectFileMoveEntry[], required: Files to rename or clone
    - `currentFilePath` string, required: Current path of the file to rename or clone
    - `newFilePath` string, required: New path for the renamed or cloned file
    - `pathPrefix` boolean: When true, treat currentFilePath/newFilePath as prefixes covering multiple files
  - `replaceFiles` string[]: Optional paths whose existing target files may be replaced without a conflict

## Response `200`

File operation completed successfully

- ProjectFileMoveResultResponse: Result of a rename or clone operation
  - `filesRenamedOrCloned` string[]: Paths of files successfully renamed or cloned
  - `filesIgnored` string[]: Paths ignored because they did not match any existing file
  - `filesDeleted` string[]: Paths deleted as a side effect of the move, when applicable
  - `conflictedFiles` string[]: Target paths that already existed and were not replaced
  - `validationErrors` string[]: Validation errors that prevented individual entries from completing

## Other responses

- `400`: Bad Request — the resolved project type does not support files (DI-ADAPTER-PRF-0009)
- `401`: Unauthorized
- `403`: Forbidden — requires replication-pipeline::update when permission harmonization is enabled, or legacy replication-pipeline::manage otherwise
- `404`: Not Found — project or a source file does not exist (DI-ADAPTER-PRF-0001)
- `409`: Conflict — target path already exists (DI-ADAPTER-PRF-0003)
- `500`: Internal Server Error — file move failed (DI-ADAPTER-PRF-0002)

---

[API](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service.md) · [All operations](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/llms.txt) · [OpenAPI document](https://skmtc.dev/precisely/apis/precisely-integration-adapter-service/revisions/2d2629f4987d?raw)
