{"components":{"schemas":{"ClearContributionsRequest":{"description":"Request to clear contributions by composite key. Accepts at most 100 keys.","properties":{"contributions":{"description":"List of contribution composite keys to clear (max 100)","items":{"$ref":"#/components/schemas/ContributionKeyDto"},"maxItems":100,"minItems":1,"type":"array"}},"required":["contributions"],"type":"object"},"ClearContributionsResponse":{"description":"Response containing the composite keys of cleared contributions","properties":{"cleared":{"description":"Composite keys of the contributions that were cleared (echoed from request)","items":{"$ref":"#/components/schemas/ContributionKeyDto"},"type":"array"}},"type":"object"},"ContributionDto":{"description":"A contribution allocation for a contributor-work pair in a time period","properties":{"contributorDataId":{"description":"ARI of the contributor","example":"ari:cloud:identity::user/5e43cd5aa17f930c9b942ed4","type":"string"},"endDate":{"description":"End date of the contribution period (ISO-8601)","example":"2026-06-21","format":"date","type":"string"},"startDate":{"description":"Start date of the contribution period (ISO-8601)","example":"2026-06-15","format":"date","type":"string"},"value":{"description":"Contribution value in the specified value type","example":8,"format":"float","type":"number"},"valueType":{"description":"Value type for the contribution","enum":["HOURS","DAYS","PERCENTAGE"],"type":"string"},"workDataId":{"description":"ARI of the work item","example":"ari:cloud:jira:cloud-id:issue/10042","type":"string"}},"type":"object"},"ContributionInputDto":{"description":"A contribution allocation for a contributor-work pair within a date range. The date range must not exceed 90 days, the start date must not be more than 2 years in the past, and the end date must not be more than 2 years in the future.","properties":{"contributorDataId":{"description":"ARI of the contributor","example":"ari:cloud:identity::user/5e43cd5aa17f930c9b942ed4","type":"string"},"endDate":{"description":"End date of the contribution period (ISO-8601). The contribution period must not exceed 90 days, and endDate must not be more than 2 years in the future.","example":"2026-01-12","format":"date","type":"string"},"startDate":{"description":"Start date of the contribution period (ISO-8601). Must not be after endDate or more than 2 years in the past.","example":"2026-01-06","format":"date","type":"string"},"value":{"description":"Contribution value (must be >= 0)","example":8,"format":"float","type":"number"},"valueType":{"description":"Unit of the contribution value","enum":["HOURS","DAYS","PERCENTAGE"],"example":"HOURS","type":"string"},"workDataId":{"description":"ARI of the work item","example":"ari:cloud:jira:cloud-id:issue/10042","type":"string"}},"required":["contributorDataId","endDate","startDate","value","valueType","workDataId"],"type":"object"},"ContributionKeyDto":{"description":"Composite key identifying a contribution","properties":{"contributorDataId":{"description":"ARI of the contributor","example":"ari:cloud:identity::user/5e43cd5aa17f930c9b942ed4","type":"string"},"endDate":{"description":"End date of the contribution period (ISO-8601)","example":"2026-01-12","format":"date","type":"string"},"startDate":{"description":"Start date of the contribution period (ISO-8601). Must not be after endDate.","example":"2026-01-06","format":"date","type":"string"},"workDataId":{"description":"ARI of the work item","example":"ari:cloud:jira:cloud-id:issue/10042","type":"string"}},"required":["contributorDataId","endDate","startDate","workDataId"],"type":"object"},"ContributorWorkAssociationDto":{"description":"A contributor work association linking a contributor to a work item","properties":{"contributorDataId":{"description":"ARI of the contributor","example":"ari:cloud:identity::user/12345","type":"string"},"createdAt":{"description":"Timestamp when the association was created","format":"date-time","type":"string"},"updatedAt":{"description":"Timestamp when the association was last updated","format":"date-time","type":"string"},"workDataId":{"description":"ARI of the work item","example":"ari:cloud:jira:cloud-id:issue/10001","type":"string"}},"type":"object"},"ContributorWorkPairDto":{"description":"A pair identifying a contributor and a work item","properties":{"contributorDataId":{"description":"ARI of the contributor","example":"ari:cloud:identity::user/12345","type":"string"},"workDataId":{"description":"ARI of the work item","example":"ari:cloud:jira:cloud-id:issue/10001","type":"string"}},"required":["contributorDataId","workDataId"],"type":"object"},"CreateContributorWorkAssociationsRequest":{"description":"Request to create contributor work associations","properties":{"associations":{"description":"List of contributor-work associations to create","items":{"$ref":"#/components/schemas/ContributorWorkPairDto"},"maxItems":100,"minItems":1,"type":"array"}},"required":["associations"],"type":"object"},"CreateContributorWorkAssociationsResponse":{"description":"Response containing the created contributor work associations","properties":{"associations":{"description":"The created or existing contributor work associations","items":{"$ref":"#/components/schemas/ContributorWorkAssociationDto"},"type":"array"}},"type":"object"},"CreateNonProjectWorkItemRequest":{"description":"Request to create a non-project work item","properties":{"name":{"description":"Display name for the non-project work item","maxLength":255,"minLength":0,"type":"string"}},"required":["name"],"type":"object"},"CreateNonProjectWorkItemResponse":{"description":"Response containing the created non-project work item","properties":{"nonProjectWorkItem":{"$ref":"#/components/schemas/NonProjectWorkItemDto"}},"type":"object"},"DeleteContributorWorkAssociationsRequest":{"description":"Request to delete contributor work associations","properties":{"associations":{"description":"List of contributor-work associations to delete","items":{"$ref":"#/components/schemas/ContributorWorkPairDto"},"maxItems":100,"minItems":1,"type":"array"}},"required":["associations"],"type":"object"},"DeleteContributorWorkAssociationsResponse":{"description":"Response containing the composite keys of deleted contributor work associations","properties":{"deleted":{"description":"Composite keys of the associations that were actually deleted","items":{"$ref":"#/components/schemas/ContributorWorkPairDto"},"type":"array"}},"type":"object"},"GetContributionsResponse":{"description":"Response containing contribution cells for a contributor-work pair","properties":{"contributions":{"description":"Contribution cells aligned to weekly time periods","items":{"$ref":"#/components/schemas/ContributionDto"},"type":"array"}},"type":"object"},"GetContributorWorkAssociationsResponse":{"description":"Paginated response containing contributor work associations","properties":{"associations":{"description":"The matching contributor work associations","items":{"$ref":"#/components/schemas/ContributorWorkAssociationDto"},"type":"array"},"pageInfo":{"$ref":"#/components/schemas/PageInfoDto"}},"type":"object"},"GetNonProjectWorkItemsResponse":{"description":"Paginated response containing non-project work items","properties":{"nonProjectWorkItems":{"description":"The matching non-project work items","items":{"$ref":"#/components/schemas/NonProjectWorkItemDto"},"type":"array"},"pageInfo":{"$ref":"#/components/schemas/PageInfoDto"}},"type":"object"},"NonProjectWorkItemDto":{"description":"A non-project work item","properties":{"ari":{"description":"ARI of the non-project work item","example":"ari:cloud:capacity-planning::custom-contribution-target/activation/a729796c-2ed4-4307-913a-d82357bb2f9a/3f2504e0-4f89-41d3-9a0c-0305e82c3301","type":"string"},"id":{"description":"Server-allocated UUID of the non-project work item","example":"3f2504e0-4f89-41d3-9a0c-0305e82c3301","type":"string"},"name":{"description":"Customer-chosen display name","type":"string"}},"type":"object"},"PageInfoDto":{"description":"Pagination information for cursor-based pagination","properties":{"endCursor":{"description":"Cursor of the last item in the current page, null if empty","nullable":true,"type":"string"},"hasNextPage":{"description":"Whether there are more results after the current page","type":"boolean"},"hasPreviousPage":{"description":"Whether there are results before the current page","type":"boolean"},"startCursor":{"description":"Cursor of the first item in the current page, null if empty","nullable":true,"type":"string"}},"type":"object"},"UpdateNonProjectWorkItemRequest":{"description":"Request to update a non-project work item","properties":{"name":{"description":"New display name for the non-project work item","maxLength":255,"minLength":0,"type":"string"}},"required":["name"],"type":"object"},"UpsertContributionsRequest":{"description":"Request to upsert contributions. Accepts at most 100 contributions.","properties":{"contributions":{"description":"List of contributions to upsert (max 100)","items":{"$ref":"#/components/schemas/ContributionInputDto"},"maxItems":100,"minItems":1,"type":"array"}},"required":["contributions"],"type":"object"},"UpsertContributionsResponse":{"description":"Response containing the upserted contributions","properties":{"contributions":{"description":"The upserted contribution records","items":{"$ref":"#/components/schemas/ContributionDto"},"type":"array"}},"type":"object"}}},"info":{"description":"Public REST endpoints for capacity-planning-service, served under https://api.atlassian.com/ex/capacity-planning/{cloudId}/v1.","title":"Capacity Planning Public REST API","version":"v1"},"openapi":"3.0.1","paths":{"/contributions":{"get":{"x-preview":true,"description":"Returns the time-based allocation breakdown for a specific contributor and work item within the given date range. The query window must not exceed 2 years. Results are split into weekly time periods.","operationId":"getContributions","parameters":[{"description":"ARI of the contributor (required)","in":"query","name":"contributorDataId","required":true,"schema":{"example":"ari:cloud:identity::user/5e43cd5aa17f930c9b942ed4","type":"string"}},{"description":"ARI of the work item (required)","in":"query","name":"workDataId","required":true,"schema":{"example":"ari:cloud:jira:cloud-id:issue/10042","type":"string"}},{"description":"Start date of the query window (ISO-8601, required)","example":"2026-01-01","in":"query","name":"startDate","required":true,"schema":{"format":"date","type":"string"}},{"description":"End date of the query window (ISO-8601, required). The window from startDate to endDate must not exceed 2 years.","example":"2026-12-31","in":"query","name":"endDate","required":true,"schema":{"format":"date","type":"string"}},{"description":"Value type for contribution amounts (default: HOURS)","in":"query","name":"valueType","required":false,"schema":{"enum":["HOURS","DAYS","PERCENTAGE"],"nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetContributionsResponse"}}},"description":"OK"}},"summary":"Get contributions for a contributor-work pair","tags":["Contributions"]},"post":{"x-preview":true,"description":"Sets the allocation for one or more contributor-work pairs within specified date ranges (max 100 per call). A single contribution must not span more than 90 days, the start date must not be more than 2 years in the past, and the end date must not be more than 2 years in the future. If a contribution already exists for the same contributor, work item, and date range it is replaced with the new value; otherwise a new contribution is created.","operationId":"upsertContributions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertContributionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpsertContributionsResponse"}}},"description":"OK"}},"summary":"Create or update contributions","tags":["Contributions"]}},"/contributions:clear":{"post":{"x-preview":true,"description":"Removes the allocation for the specified contributor-work pairs and date ranges (max 100 per call). Each clear key must have a start date that is not after its end date. After this call, the affected date ranges will return a zero allocation. The response echoes back the keys that were cleared.","operationId":"clearContributions","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClearContributionsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/ClearContributionsResponse"}}},"description":"OK"}},"summary":"Clear contributions","tags":["Contributions"]}},"/contributor-work-associations":{"post":{"x-preview":true,"description":"Creates associations between contributors and work items. If an association already exists between the specified contributor and work item, it is returned unchanged.","operationId":"createContributorWorkAssociations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContributorWorkAssociationsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateContributorWorkAssociationsResponse"}}},"description":"OK"}},"summary":"Create contributor work associations","tags":["Contributor Work Associations"]}},"/contributor-work-associations/by-contributor":{"get":{"x-preview":true,"description":"Retrieves work items associated with a specific contributor, with cursor-based pagination. Use first/after for forward pagination or last/before for backward pagination.","operationId":"getContributorWorkAssociationsByContributor","parameters":[{"description":"ARI of the contributor","in":"query","name":"contributorDataId","required":true,"schema":{"example":"ari:cloud:identity::user/12345","type":"string"}},{"description":"Maximum number of results to return (forward pagination)","in":"query","name":"first","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"description":"Cursor for forward pagination","in":"query","name":"after","required":false,"schema":{"nullable":true,"type":"string"}},{"description":"Maximum number of results to return (backward pagination)","in":"query","name":"last","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"description":"Cursor for backward pagination","in":"query","name":"before","required":false,"schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetContributorWorkAssociationsResponse"}}},"description":"OK"}},"summary":"Get work associations for a contributor","tags":["Contributor Work Associations"]}},"/contributor-work-associations/by-work":{"get":{"x-preview":true,"description":"Retrieves contributors associated with a specific work item, with cursor-based pagination. Use first/after for forward pagination or last/before for backward pagination.","operationId":"getContributorWorkAssociationsByWork","parameters":[{"description":"ARI of the work item","in":"query","name":"workDataId","required":true,"schema":{"example":"ari:cloud:jira:cloud-id:issue/10001","type":"string"}},{"description":"Maximum number of results to return (forward pagination)","in":"query","name":"first","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"description":"Cursor for forward pagination","in":"query","name":"after","required":false,"schema":{"nullable":true,"type":"string"}},{"description":"Maximum number of results to return (backward pagination)","in":"query","name":"last","required":false,"schema":{"maximum":100,"minimum":1,"type":"integer"}},{"description":"Cursor for backward pagination","in":"query","name":"before","required":false,"schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetContributorWorkAssociationsResponse"}}},"description":"OK"}},"summary":"Get contributor associations for a work item","tags":["Contributor Work Associations"]}},"/contributor-work-associations:delete":{"post":{"x-preview":true,"description":"Deletes associations between contributors and work items.","operationId":"deleteContributorWorkAssociations","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteContributorWorkAssociationsRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/DeleteContributorWorkAssociationsResponse"}}},"description":"OK"}},"summary":"Delete contributor work associations","tags":["Contributor Work Associations"]}},"/non-project-work-items":{"get":{"x-preview":true,"description":"Lists non-project work items, optionally filtered by name, with cursor-based pagination.","operationId":"listNonProjectWorkItems","parameters":[{"description":"Case-insensitive name filter","in":"query","name":"query","required":false,"schema":{"nullable":true,"type":"string"}},{"description":"Forward page size, between 1 and 100","in":"query","name":"first","required":false,"schema":{"format":"int32","nullable":true,"type":"integer"}},{"description":"Cursor for forward pagination","in":"query","name":"after","required":false,"schema":{"nullable":true,"type":"string"}},{"description":"Backward page size, between 1 and 100","in":"query","name":"last","required":false,"schema":{"format":"int32","nullable":true,"type":"integer"}},{"description":"Cursor for backward pagination","in":"query","name":"before","required":false,"schema":{"nullable":true,"type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/GetNonProjectWorkItemsResponse"}}},"description":"OK"}},"summary":"List non-project work items","tags":["Non-Project Work Items"]},"post":{"x-preview":true,"description":"Creates a non-project work item.","operationId":"createNonProjectWorkItem","requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNonProjectWorkItemRequest"}}},"required":true},"responses":{"201":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/CreateNonProjectWorkItemResponse"}}},"description":"Created"}},"summary":"Create a non-project work item","tags":["Non-Project Work Items"]}},"/non-project-work-items/{id}":{"get":{"x-preview":true,"description":"Retrieves a single non-project work item by its server-allocated UUID.","operationId":"getNonProjectWorkItem","parameters":[{"description":"Server-allocated UUID of the non-project work item","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NonProjectWorkItemDto"}}},"description":"OK"}},"summary":"Get a non-project work item by id","tags":["Non-Project Work Items"]},"put":{"x-preview":true,"description":"Updates the mutable fields (name) of an existing non-project work item.","operationId":"updateNonProjectWorkItem","parameters":[{"description":"Server-allocated UUID of the non-project work item","in":"path","name":"id","required":true,"schema":{"format":"uuid","type":"string"}}],"requestBody":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/UpdateNonProjectWorkItemRequest"}}},"required":true},"responses":{"200":{"content":{"application/json":{"schema":{"$ref":"#/components/schemas/NonProjectWorkItemDto"}}},"description":"OK"}},"summary":"Update a non-project work item","tags":["Non-Project Work Items"]}}},"servers":[{"description":"Atlassian Cloud (production)","url":"https://api.atlassian.com/ex/capacity-planning/{cloudId}/v1","variables":{"cloudId":{"default":"cloudId","description":"Atlassian site (tenant) cloud ID"}}}],"tags":[{"description":"Manage non-project work items","name":"Non-Project Work Items"},{"description":"Manage associations between contributors and work items","name":"Contributor Work Associations"},{"description":"Manage time-allocation contributions for contributor-work pairs","name":"Contributions"}]}