@@ -5128,6 +5128,34 @@ components:
51285128 as the start dates in the original project.
51295129 type: string
51305130 example: '2019-05-21'
5131+ PortfolioDuplicateRequest:
5132+ type: object
5133+ required:
5134+ - name
5135+ properties:
5136+ name:
5137+ description: The name of the new portfolio.
5138+ type: string
5139+ example: New Portfolio Name
5140+ include:
5141+ description: |-
5142+ A comma-separated list of elements to include when duplicating a portfolio.
5143+
5144+ **Auto-included fields (non-configurable)**
5145+ - Custom field settings
5146+ - Views (tabs)
5147+
5148+ **Optional fields (configurable)**
5149+ - description
5150+ - members
5151+ - permissions
5152+ - templates
5153+ - rules
5154+ - child_projects
5155+ - child_portfolios
5156+ type: string
5157+ example:
5158+ - description,members,permissions,templates,rules,child_projects,child_portfolios
51315159 CustomFieldMembershipBase:
51325160 $ref: '#/components/schemas/CustomFieldMembershipCompact'
51335161 CustomFieldMembershipCompact:
@@ -26222,6 +26250,108 @@ paths:
2622226250
2622326251 result = client.portfolios.remove_members_for_portfolio(portfolio_gid:
2622426252 'portfolio_gid', field: "value", field: "value", options: {pretty: true})
26253+ /portfolios/{portfolio_gid}/duplicate:
26254+ parameters:
26255+ - $ref: '#/components/parameters/portfolio_path_gid'
26256+ - $ref: '#/components/parameters/pretty'
26257+ post:
26258+ summary: Duplicate a portfolio
26259+ description: |-
26260+ <b>Required scope: </b><code>portfolios:write</code>
26261+
26262+ Creates and returns a job that will asynchronously handle the duplication.
26263+ tags:
26264+ - Portfolios
26265+ operationId: duplicatePortfolio
26266+ parameters:
26267+ - name: opt_fields
26268+ in: query
26269+ description: This endpoint returns a resource which excludes some properties
26270+ by default. To include those optional properties, set this query parameter
26271+ to a comma-separated list of the properties you wish to include.
26272+ required: false
26273+ example:
26274+ - new_graph_export
26275+ - new_graph_export.completed_at
26276+ - new_graph_export.created_at
26277+ - new_graph_export.download_url
26278+ - new_portfolio
26279+ - new_portfolio.name
26280+ - new_project
26281+ - new_project.name
26282+ - new_project_template
26283+ - new_project_template.name
26284+ - new_resource_export
26285+ - new_resource_export.completed_at
26286+ - new_resource_export.created_at
26287+ - new_resource_export.download_url
26288+ - new_task
26289+ - new_task.created_by
26290+ - new_task.name
26291+ - new_task.resource_subtype
26292+ - resource_subtype
26293+ - status
26294+ schema:
26295+ type: array
26296+ items:
26297+ type: string
26298+ enum:
26299+ - new_graph_export
26300+ - new_graph_export.completed_at
26301+ - new_graph_export.created_at
26302+ - new_graph_export.download_url
26303+ - new_portfolio
26304+ - new_portfolio.name
26305+ - new_project
26306+ - new_project.name
26307+ - new_project_template
26308+ - new_project_template.name
26309+ - new_resource_export
26310+ - new_resource_export.completed_at
26311+ - new_resource_export.created_at
26312+ - new_resource_export.download_url
26313+ - new_task
26314+ - new_task.created_by
26315+ - new_task.name
26316+ - new_task.resource_subtype
26317+ - resource_subtype
26318+ - status
26319+ style: form
26320+ explode: false
26321+ requestBody:
26322+ description: >-
26323+ Describes the duplicate's name and the elements that will be duplicated.
26324+ content:
26325+ application/json:
26326+ schema:
26327+ type: object
26328+ properties:
26329+ data:
26330+ $ref: '#/components/schemas/PortfolioDuplicateRequest'
26331+ responses:
26332+ 201:
26333+ description: Successfully created the job to handle duplication.
26334+ content:
26335+ application/json:
26336+ schema:
26337+ type: object
26338+ properties:
26339+ data:
26340+ $ref: '#/components/schemas/JobResponse'
26341+ 400:
26342+ $ref: '#/components/responses/BadRequest'
26343+ 401:
26344+ $ref: '#/components/responses/Unauthorized'
26345+ 403:
26346+ $ref: '#/components/responses/Forbidden'
26347+ 404:
26348+ $ref: '#/components/responses/NotFound'
26349+ 500:
26350+ $ref: '#/components/responses/InternalServerError'
26351+ security:
26352+ - personalAccessToken: []
26353+ - oauth2:
26354+ - portfolios:write
2622526355 /project_briefs/{project_brief_gid}:
2622626356 parameters:
2622726357 - $ref: '#/components/parameters/project_brief_path_gid'
0 commit comments