Cloudsmith entitlements API
The entitlements API from Cloudsmith — 8 operation(s) for entitlements.
The entitlements API from Cloudsmith — 8 operation(s) for entitlements.
swagger: '2.0'
info:
title: Cloudsmith API (v1) audit-log entitlements API
description: The API to the Cloudsmith Service
termsOfService: https://help.cloudsmith.io
contact:
name: Cloudsmith Support
url: https://help.cloudsmith.io
email: support@cloudsmith.io
license:
name: MIT
url: https://opensource.org/licenses/MIT
version: v1
host: api.cloudsmith.io
basePath: /
schemes:
- https
consumes:
- application/json
produces:
- application/json
security:
- apikey: []
- basic: []
tags:
- name: entitlements
paths:
/entitlements/{owner}/{repo}/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
get:
operationId: entitlements_list
summary: Get a list of all entitlements in a repository.
description: Get a list of all entitlements in a repository.
parameters:
- name: page
in: query
description: A page number within the paginated result set.
required: false
type: integer
- name: page_size
in: query
description: Number of results to return per page.
required: false
type: integer
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
- name: query
in: query
description: A search term for querying names of entitlements.
required: false
type: string
- name: active
in: query
description: If true, only include active tokens
required: false
type: boolean
default: false
- name: sort
in: query
description: 'A field for sorting objects in ascending or descending order. Use `-` prefix for descending order (e.g., `-name`). Available options: name.'
required: false
type: string
default: name
responses:
'200':
description: Retrieved the list of entitlement tokens
schema:
type: array
items:
$ref: '#/definitions/RepositoryToken'
'404':
description: Owner namespace or repository not found
schema:
$ref: '#/definitions/ErrorDetail'
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
post:
operationId: entitlements_create
summary: Create a specific entitlement in a repository.
description: Create a specific entitlement in a repository.
parameters:
- name: data
in: body
required: false
schema:
$ref: '#/definitions/RepositoryTokenRequest'
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'201':
description: Created the specified entitlement
schema:
$ref: '#/definitions/RepositoryToken'
'404':
description: Owner namespace or repository not found
schema:
$ref: '#/definitions/ErrorDetail'
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/sync/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
post:
operationId: entitlements_sync
summary: Synchronise tokens from a source repository.
description: Synchronise tokens from a source repository.
parameters:
- name: data
in: body
required: false
schema:
$ref: '#/definitions/RepositoryTokenSyncRequest'
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'200':
description: The tokens have been synchronised from the source repository.
schema:
$ref: '#/definitions/RepositoryTokenSync'
'404':
description: Owner namespace or repository not found
schema:
$ref: '#/definitions/ErrorDetail'
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
get:
operationId: entitlements_read
summary: Get a specific entitlement in a repository.
description: Get a specific entitlement in a repository.
parameters:
- name: fuzzy
in: query
description: If true, entitlement identifiers including name will be fuzzy matched.
required: false
type: boolean
default: false
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'200':
description: Retrieved the specified entitlement
schema:
$ref: '#/definitions/RepositoryToken'
'400':
description: Couldn't retrieve the specified token because the request contains an error.
schema:
$ref: '#/definitions/ErrorDetail'
'404':
description: Owner namespace or repository not found
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
patch:
operationId: entitlements_partial_update
summary: Update a specific entitlement in a repository.
description: Update a specific entitlement in a repository.
parameters:
- name: data
in: body
required: false
schema:
$ref: '#/definitions/RepositoryTokenRequestPatch'
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'200':
description: Updated the specified entitlement
schema:
$ref: '#/definitions/RepositoryToken'
'400':
description: The entitlement cannot be edited.
schema:
$ref: '#/definitions/ErrorDetail'
'404':
description: Owner namespace or repository not found
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
delete:
operationId: entitlements_delete
summary: Delete a specific entitlement in a repository.
description: Delete a specific entitlement in a repository.
parameters: []
responses:
'204':
description: Soft-deleted the specified entitlement token successfully.
'400':
description: The entitlement cannot be deleted.
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/disable/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
post:
operationId: entitlements_disable
summary: Disable an entitlement token in a repository.
description: Disable an entitlement token in a repository.
parameters: []
responses:
'204':
description: The entitlement token has been disabled.
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/enable/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
post:
operationId: entitlements_enable
summary: Enable an entitlement token in a repository.
description: Enable an entitlement token in a repository.
parameters: []
responses:
'204':
description: The entitlement token has been enabled.
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/refresh/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
post:
operationId: entitlements_refresh
summary: Refresh an entitlement token in a repository.
description: Refresh an entitlement token in a repository.
parameters:
- name: data
in: body
required: false
schema:
$ref: '#/definitions/RepositoryTokenRefreshRequest'
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'200':
description: The entitlement token has been refreshed.
schema:
$ref: '#/definitions/RepositoryTokenRefresh'
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/reset/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
post:
operationId: entitlements_reset
summary: Reset the statistics for an entitlement token in a repository.
description: Reset the statistics for an entitlement token in a repository.
parameters:
- name: show_tokens
in: query
description: Show entitlement token strings in results
required: false
type: boolean
default: false
responses:
'204':
description: The entitlement token statistics have been reset.
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
/entitlements/{owner}/{repo}/{identifier}/toggle-private-broadcasts/:
parameters:
- name: owner
in: path
required: true
type: string
- name: repo
in: path
required: true
type: string
- name: identifier
in: path
required: true
type: string
post:
operationId: entitlements_toggle_private_broadcasts
summary: Set private broadcast access for an entitlement token in a repository.
description: Set private broadcast access for an entitlement token in a repository.
parameters:
- name: data
in: body
required: false
schema:
$ref: '#/definitions/RepositoryTokenPrivateBroadcastsRequest'
responses:
'200':
description: Private broadcasts access has been updated for the entitlement token.
'400':
description: Request could not be processed (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
'422':
description: Missing or invalid parameters (see detail).
schema:
$ref: '#/definitions/ErrorDetail'
tags:
- entitlements
definitions:
RepositoryTokenRefreshRequest:
type: object
properties:
eula_required:
title: Eula required
description: If checked, a EULA acceptance is required for this token.
type: boolean
is_active:
title: Token Active
description: If enabled, the token will allow downloads based on configured restrictions (if any).
type: boolean
limit_bandwidth:
title: Limit bandwidth
description: 'The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. '
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_bandwidth_unit:
title: Limit bandwidth unit
type: string
enum:
- Byte
- Kilobyte
- Megabyte
- Gigabyte
- Terabyte
- Petabyte
- Exabyte
- Zettabyte
- Yottabyte
default: Byte
x-nullable: true
limit_date_range_from:
title: Limit date range from
description: The starting date/time the token is allowed to be used from.
type: string
format: date-time
x-nullable: true
limit_date_range_to:
title: Limit date range to
description: The ending date/time the token is allowed to be used until.
type: string
format: date-time
x-nullable: true
limit_num_clients:
title: Limit num clients
description: The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_num_downloads:
title: Limit num downloads
description: The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_package_query:
title: Limit package query
description: The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.
type: string
maxLength: 1024
x-nullable: true
limit_path_query:
title: Limit path query
description: THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.
type: string
maxLength: 1024
x-nullable: true
metadata:
title: Metadata
type: object
x-nullable: true
scheduled_reset_at:
title: Scheduled reset at
description: The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.
type: string
format: date-time
x-nullable: true
scheduled_reset_period:
title: Scheduled reset period
type: string
enum:
- Never Reset
- Daily
- Weekly
- Fortnightly
- Monthly
- Bi-Monthly
- Quarterly
- Every 6 months
- Annual
default: Never Reset
x-nullable: true
token:
title: Token
type: string
minLength: 1
RepositoryTokenRequestPatch:
type: object
properties:
eula_required:
title: Eula required
description: If checked, a EULA acceptance is required for this token.
type: boolean
is_active:
title: Token Active
description: If enabled, the token will allow downloads based on configured restrictions (if any).
type: boolean
limit_bandwidth:
title: Limit bandwidth
description: 'The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. '
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_bandwidth_unit:
title: Limit bandwidth unit
type: string
enum:
- Byte
- Kilobyte
- Megabyte
- Gigabyte
- Terabyte
- Petabyte
- Exabyte
- Zettabyte
- Yottabyte
default: Byte
x-nullable: true
limit_date_range_from:
title: Limit date range from
description: The starting date/time the token is allowed to be used from.
type: string
format: date-time
x-nullable: true
limit_date_range_to:
title: Limit date range to
description: The ending date/time the token is allowed to be used until.
type: string
format: date-time
x-nullable: true
limit_num_clients:
title: Limit num clients
description: The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_num_downloads:
title: Limit num downloads
description: The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_package_query:
title: Limit package query
description: The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.
type: string
maxLength: 1024
x-nullable: true
limit_path_query:
title: Limit path query
description: THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.
type: string
maxLength: 1024
x-nullable: true
metadata:
title: Metadata
type: object
x-nullable: true
name:
title: Name
type: string
minLength: 1
scheduled_reset_at:
title: Scheduled reset at
description: The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.
type: string
format: date-time
x-nullable: true
scheduled_reset_period:
title: Scheduled reset period
type: string
enum:
- Never Reset
- Daily
- Weekly
- Fortnightly
- Monthly
- Bi-Monthly
- Quarterly
- Every 6 months
- Annual
default: Never Reset
x-nullable: true
token:
title: Token
type: string
minLength: 1
ErrorDetail:
required:
- detail
type: object
properties:
detail:
title: Detail
description: An extended message for the response.
type: string
minLength: 1
fields:
title: Fields
description: 'A Dictionary of related errors where key: Field and value: Array of Errors related to that field'
type: object
additionalProperties:
type: array
items:
type: string
minLength: 1
RepositoryToken:
required:
- name
type: object
properties:
access_private_broadcasts:
title: Access private broadcasts
description: If enabled, this token can be used for private broadcasts
type: boolean
readOnly: true
clients:
title: Clients
type: integer
readOnly: true
created_at:
title: Created at
description: The datetime the token was updated at.
type: string
format: date-time
readOnly: true
created_by:
title: Created by
type: string
readOnly: true
minLength: 1
created_by_url:
title: Created by url
type: string
format: uri
readOnly: true
default:
title: Default
description: If selected this is the default token for this repository.
type: boolean
readOnly: true
disable_url:
title: Disable url
type: string
format: uri
readOnly: true
downloads:
title: Downloads
type: integer
readOnly: true
enable_url:
title: Enable url
type: string
format: uri
readOnly: true
eula_accepted:
$ref: '#/definitions/Eula'
eula_accepted_at:
title: Eula accepted at
description: The datetime the EULA was accepted at.
type: string
format: date-time
readOnly: true
x-nullable: true
eula_accepted_from:
title: Eula accepted from
type: string
readOnly: true
minLength: 1
x-nullable: true
eula_required:
title: Eula required
description: If checked, a EULA acceptance is required for this token.
type: boolean
has_limits:
title: Has limits
type: boolean
readOnly: true
identifier:
title: Identifier
description: 'Deprecated (23-05-15): Please use ''slug_perm'' instead. Previously: A monotonically increasing number that identified an entitlement within a repository.'
type: integer
readOnly: true
x-nullable: true
is_active:
title: Token Active
description: If enabled, the token will allow downloads based on configured restrictions (if any).
type: boolean
is_limited:
title: Is limited
type: boolean
readOnly: true
limit_bandwidth:
title: Limit bandwidth
description: 'The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. '
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_bandwidth_unit:
title: Limit bandwidth unit
type: string
enum:
- Byte
- Kilobyte
- Megabyte
- Gigabyte
- Terabyte
- Petabyte
- Exabyte
- Zettabyte
- Yottabyte
default: Byte
x-nullable: true
limit_date_range_from:
title: Limit date range from
description: The starting date/time the token is allowed to be used from.
type: string
format: date-time
x-nullable: true
limit_date_range_to:
title: Limit date range to
description: The ending date/time the token is allowed to be used until.
type: string
format: date-time
x-nullable: true
limit_num_clients:
title: Limit num clients
description: The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_num_downloads:
title: Limit num downloads
description: The maximum number of downloads allowed for the token. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point.
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_package_query:
title: Limit package query
description: The package-based search query to apply to restrict downloads to. This uses the same syntax as the standard search used for repositories, and also supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. This will still allow access to non-package files, such as metadata.
type: string
maxLength: 1024
x-nullable: true
limit_path_query:
title: Limit path query
description: THIS WILL SOON BE DEPRECATED, please use limit_package_query instead. The path-based search query to apply to restrict downloads to. This supports boolean logic operators such as OR/AND/NOT and parentheses for grouping. The path evaluated does not include the domain name, the namespace, the entitlement code used, the package format, etc. and it always starts with a forward slash.
type: string
maxLength: 1024
x-nullable: true
metadata:
title: Metadata
type: object
x-nullable: true
name:
title: Name
type: string
minLength: 1
refresh_url:
title: Refresh url
type: string
format: uri
readOnly: true
reset_url:
title: Reset url
type: string
format: uri
readOnly: true
scheduled_reset_at:
title: Scheduled reset at
description: The time at which the scheduled reset period has elapsed and the token limits were automatically reset to zero.
type: string
format: date-time
x-nullable: true
scheduled_reset_period:
title: Scheduled reset period
type: string
enum:
- Never Reset
- Daily
- Weekly
- Fortnightly
- Monthly
- Bi-Monthly
- Quarterly
- Every 6 months
- Annual
default: Never Reset
x-nullable: true
self_url:
title: Self url
type: string
format: uri
readOnly: true
slug_perm:
title: Slug perm
type: string
format: slug
pattern: ^[-a-zA-Z0-9_]+$
readOnly: true
minLength: 1
token:
title: Token
type: string
minLength: 1
updated_at:
title: Updated at
description: The datetime the token was updated at.
type: string
format: date-time
readOnly: true
x-nullable: true
updated_by:
title: Updated by
type: string
readOnly: true
minLength: 1
x-nullable: true
updated_by_url:
title: Updated by url
type: string
format: uri
readOnly: true
x-nullable: true
usage:
title: Usage
type: string
readOnly: true
minLength: 1
user:
title: User
type: string
readOnly: true
minLength: 1
x-nullable: true
user_url:
title: User url
type: string
format: uri
readOnly: true
x-nullable: true
RepositoryTokenPrivateBroadcastsRequest:
required:
- access_private_broadcasts
type: object
properties:
access_private_broadcasts:
title: Access private broadcasts
description: Whether the token should have access to private broadcasts.
type: boolean
RepositoryTokenSync:
type: object
properties:
tokens:
description: The entitlements that have been synchronised.
type: array
items:
$ref: '#/definitions/RepositoryToken'
readOnly: true
RepositoryTokenRequest:
required:
- name
type: object
properties:
eula_required:
title: Eula required
description: If checked, a EULA acceptance is required for this token.
type: boolean
is_active:
title: Token Active
description: If enabled, the token will allow downloads based on configured restrictions (if any).
type: boolean
limit_bandwidth:
title: Limit bandwidth
description: 'The maximum download bandwidth allowed for the token. Values are expressed as the selected unit of bandwidth. Please note that since downloads are calculated asynchronously (after the download happens), the limit may not be imposed immediately but at a later point. '
type: integer
maximum: 9223372036854775807
minimum: -9223372036854775808
x-nullable: true
limit_bandwidth_unit:
title: Limit bandwidth unit
type: string
enum:
- Byte
- Kilobyte
- Megabyte
- Gigabyte
- Terabyte
- Petabyte
- Exabyte
- Zettabyte
- Yottabyte
default: Byte
x-nullable: true
limit_date_range_from:
title: Limit date range from
description: The starting date/time the token is allowed to be used from.
type: string
format: date-time
x-nullable: true
limit_date_range_to:
title: Limit date range to
description: The ending date/time the token is allowed to be used until.
type: string
format: date-time
x-nullable: true
limit_num_clients:
title: Limit num clients
description: The maximum number of unique clients allowed for the token. Please note that since clients are calculated asynchronously (after the d
# --- truncated at 32 KB (42 KB total) ---
# Full source: https://raw.githubusercontent.com/api-evangelist/cloudsmith/refs/heads/main/openapi/cloudsmith-entitlements-api-openapi.yml