Create an Entitlement
POST/partner/v2/entitlements
Make a request to create an entitlement.
Request
Responses
- 201
- 400
- 401
- 403
- 409
- 429
- 500
An Entitlement is being created.
Response Headers
Entitlement resource uri
Bad Request
Response Headers
The unique identifier for the API request.
The request lacks valid authentication credentials for this resource.
Response Headers
The unique identifier for the API request.
The unique identifier for the API request.
Basic error="invalid_key", error_description="The API Key is invalid"The access credentials were considered insufficient to grant access
Response Headers
The unique identifier for the API request.
The request is in conflict with the current server state
Response Headers
The unique identifier for the API request.
Resource URI of conflicting resource
Rate Limit Exceeded
Response Headers
The unique identifier for the API request.
The maximum number of requests you're permitted to make per time period.
The number of requests remaining in the current rate limit window.
The relative time in seconds until the current rate-limit window resets.
Important: This differs from Github and Twitter's same-named header which uses UTC epoch seconds. We use relative time to avoid client/server time synchronization issues.
The number of seconds to wait until the rate limit window resets. Only sent when the rate limit is reached.
Oops, something went wrong!
Response Headers
The unique identifier for the API request.
OpenAPI definition (YAML)
paths:
/partner/v2/entitlements:
post:
x-lifecycle-stage: Early Access
x-request-access-name: Partner v2
operationId: createPartnerV2Entitlement
description: '[](#section/Versioning/API-Lifecycle-Policy)
[](mailto:ccloud-api-access+partner-v2-early-access@confluent.io?subject=Request%20to%20join%20partner/v2%20API%20Early%20Access&body=I%E2%80%99d%20like%20to%20join%20the%20Confluent%20Cloud%20API%20Early%20Access%20for%20partner/v2%20to%20provide%20early%20feedback%21%20My%20Cloud%20Organization%20ID%20is%20%3Cretrieve%20from%20https%3A//confluent.cloud/settings/billing/payment%3E.)
Make a request to create an entitlement.'
tags:
- Entitlements (partner/v2)
security:
- oauth:
- partner:create
requestBody:
content:
application/json:
schema:
allOf:
- type: object
description: '`Entitlement` objects represent metadata about a marketplace entitlement.'
properties:
external_id:
type: string
description: The unique external ID of the entitlement (this should be unique to customer)
example: 1111-2222-3333-4444
name:
type: string
description: The name of the entitlement
example: Acme Prod Entitlement
plan_id:
type: string
description: The plan ID the entitlement
example: confluent-cloud-payg-prod
enum:
- confluent-cloud-payg-prod
- payg-prod.gcpmarketplace.confluent.cloud
product_id:
type: string
description: The product ID of the entitlement
example: confluent-cloud-kafka-service-azure
enum:
- confluent-cloud-kafka-service-azure
- confluent-cloud-for-apache-kafka
- payg-prod.gcpmarketplace.confluent.cloud
usage_reporting_id:
type: string
description: 'The usage reporting ID of the entitlement (if usage reporting uses
a different ID, otherwise, same as external_id)
'
example: 1111-2222-3333-4444
resource_id:
type: string
description: The resource ID of the entitlement
example: 1111-2222-3333-4444
organization:
allOf:
- type: object
description: ObjectReference provides information for you to locate the referred
object
required:
- id
properties:
id:
type: string
description: ID of the referred resource
minLength: 1
maxLength: 255
environment:
type: string
description: Environment of the referred resource, if env-scoped
minLength: 1
maxLength: 255
title: ObjectReference
- required:
- related
description: The organization associated with this object.
additionalProperties: false
title: partner.v2.Entitlement
- type: object
required:
- external_id
- name
- plan_id
- product_id
responses:
'201':
description: An Entitlement is being created.
headers:
Location:
schema:
type: string
format: uri
example: https://api.confluent.cloud/partner/v2/entitlements/{id}
description: Entitlement resource uri
content:
application/json:
schema:
allOf:
- type: object
description: '`Entitlement` objects represent metadata about a marketplace entitlement.'
properties:
api_version:
type: string
enum:
- partner/v2
description: APIVersion defines the schema version of this representation of a resource.
readOnly: true
kind:
type: string
description: Kind defines the object this REST resource represents.
readOnly: true
enum:
- Entitlement
id:
description: ID is the "natural identifier" for an object within its scope/namespace;
it is normally unique across time but not space. That is, you can assume that
the ID will not be reclaimed and reused after an object is deleted ("time"); however,
it may collide with IDs for other object `kinds` or objects of the same `kind`
within a different scope/namespace ("space").
type: string
readOnly: true
example: dlz-f3a90de
metadata:
description: ObjectMeta is metadata that all persisted resources must have, which
includes all objects users must create.
required:
- self
properties:
self:
description: Self is a Uniform Resource Locator (URL) at which an object can
be addressed. This URL encodes the service location, API version, and other
particulars necessary to locate the resource at a point in time
type: string
format: uri
readOnly: true
example: https://api.confluent.cloud/v2/kafka-clusters/lkc-f3a90de
resource_name:
description: Resource Name is a Uniform Resource Identifier (URI) that is globally
unique across space and time. It is represented as a Confluent Resource Name
type: string
format: uri
readOnly: true
example: crn://confluent.cloud/kafka=lkc-f3a90de
created_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was created. It is represented
in RFC3339 format and is in UTC.
updated_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was last updated. It is
represented in RFC3339 format and is in UTC.
deleted_at:
type: string
format: date-time
example: '2006-01-02T15:04:05-07:00'
readOnly: true
description: The date and time at which this object was (or will be) deleted.
It is represented in RFC3339 format and is in UTC.
readOnly: true
title: ObjectMeta
external_id:
type: string
description: The unique external ID of the entitlement (this should be unique to
customer)
example: 1111-2222-3333-4444
name:
type: string
description: The name of the entitlement
example: Acme Prod Entitlement
plan_id:
type: string
description: The plan ID the entitlement
example: confluent-cloud-payg-prod
enum:
- confluent-cloud-payg-prod
- payg-prod.gcpmarketplace.confluent.cloud
product_id:
type: string
description: The product ID of the entitlement
example: confluent-cloud-kafka-service-azure
enum:
- confluent-cloud-kafka-service-azure
- confluent-cloud-for-apache-kafka
- payg-prod.gcpmarketplace.confluent.cloud
usage_reporting_id:
type: string
description: 'The usage reporting ID of the entitlement (if usage reporting uses
a different ID, otherwise, same as external_id)
'
example: 1111-2222-3333-4444
resource_id:
type: string
description: The resource ID of the entitlement
example: 1111-2222-3333-4444
organization:
allOf:
- type: object
description: ObjectReference provides information for you to locate the referred
object
required:
- id
- related
- resource_name
properties:
id:
type: string
description: ID of the referred resource
minLength: 1
maxLength: 255
environment:
type: string
description: Environment of the referred resource, if env-scoped
minLength: 1
maxLength: 255
related:
type: string
format: uri
description: API URL for accessing or modifying the referred object
minLength: 1
readOnly: true
resource_name:
type: string
format: uri
description: CRN reference to the referred resource
minLength: 1
readOnly: true
api_version:
type: string
description: API group and version of the referred resource
minLength: 1
readOnly: true
kind:
type: string
description: Kind of the referred resource
minLength: 1
readOnly: true
title: ObjectReference
- required:
- related
description: The organization associated with this object.
additionalProperties: false
title: partner.v2.Entitlement
- type: object
required:
- external_id
- name
- plan_id
- product_id
'400':
description: Bad Request
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a
string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT**
change from occurrence to occurrence of the problem, except for purposes of
localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the
problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request,
the source will point to the query string parameter or request body property
that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request
document [e.g. "/spec" for a spec object, or "/spec/title" for a specific
field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type: string
nullable: true
additionalProperties: false
title: Error
uniqueItems: true
title: Failure
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '400'
code: invalid_filter
title: Invalid Filter
detail: The 'delorean' resource can't be filtered by 'num_doors'
source:
parameter: num_doors
'401':
x-summary: Unauthorized
description: The request lacks valid authentication credentials for this resource.
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
WWW-Authenticate:
schema:
type: string
description: The unique identifier for the API request.
example: Basic error="invalid_key", error_description="The API Key is invalid"
content:
application/json:
schema:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a
string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT**
change from occurrence to occurrence of the problem, except for purposes of
localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the
problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request,
the source will point to the query string parameter or request body property
that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request
document [e.g. "/spec" for a spec object, or "/spec/title" for a specific
field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type: string
nullable: true
additionalProperties: false
title: Error
uniqueItems: true
title: Failure
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '401'
code: user_unauthenticated
title: Authentication Required
detail: Valid authentication credentials must be provided
'403':
x-summary: Forbidden
description: The access credentials were considered insufficient to grant access
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a
string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT**
change from occurrence to occurrence of the problem, except for purposes of
localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the
problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request,
the source will point to the query string parameter or request body property
that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request
document [e.g. "/spec" for a spec object, or "/spec/title" for a specific
field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type: string
nullable: true
additionalProperties: false
title: Error
uniqueItems: true
title: Failure
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '403'
code: user_unauthorized
title: User Access Unauthorized
detail: The user 'mcfly' is not allowed to access the 'delorean' resource without the
'plutonium' role.
'409':
x-summary: Conflict
description: The request is in conflict with the current server state
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
Location:
schema:
type: string
format: uri
example: https://api.confluent.cloud/{object}/{id}
description: Resource URI of conflicting resource
content:
application/json:
schema:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a
string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT**
change from occurrence to occurrence of the problem, except for purposes of
localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the
problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request,
the source will point to the query string parameter or request body property
that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request
document [e.g. "/spec" for a spec object, or "/spec/title" for a specific
field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type: string
nullable: true
additionalProperties: false
title: Error
uniqueItems: true
title: Failure
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '409'
code: resource_already_exists
title: Resource Already exists
detail: The entitlement '91e3e86f-fca6-4f14-98f5-a48e64113ce2' already exists.
'429':
description: Rate Limit Exceeded
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
X-RateLimit-Limit:
schema:
type: integer
description: The maximum number of requests you're permitted to make per time period.
X-RateLimit-Remaining:
schema:
type: integer
description: The number of requests remaining in the current rate limit window.
X-RateLimit-Reset:
schema:
type: integer
description: "The relative time in seconds until the current rate-limit window resets. \
\ \n \n**Important:** This differs from Github and Twitter's same-named header which\
\ uses UTC epoch seconds. We use relative time to avoid client/server time synchronization\
\ issues."
Retry-After:
schema:
type: integer
description: The number of seconds to wait until the rate limit window resets. Only sent
when the rate limit is reached.
'500':
description: Oops, something went wrong!
headers:
X-Request-Id:
schema:
type: string
description: The unique identifier for the API request.
content:
application/json:
schema:
type: object
description: Provides information about problems encountered while performing an operation.
required:
- errors
properties:
errors:
description: List of errors which caused this operation to fail
type: array
items:
type: object
description: Describes a particular error encountered while performing an operation.
properties:
id:
description: A unique identifier for this particular occurrence of the problem.
type: string
maxLength: 255
status:
description: The HTTP status code applicable to this problem, expressed as a
string value.
type: string
code:
description: An application-specific error code, expressed as a string value.
type: string
title:
description: A short, human-readable summary of the problem. It **SHOULD NOT**
change from occurrence to occurrence of the problem, except for purposes of
localization.
type: string
detail:
description: A human-readable explanation specific to this occurrence of the
problem.
type: string
source:
type: object
description: If this error was caused by a particular part of the API request,
the source will point to the query string parameter or request body property
that caused it.
properties:
pointer:
description: A JSON Pointer [RFC6901] to the associated entity in the request
document [e.g. "/spec" for a spec object, or "/spec/title" for a specific
field].
type: string
parameter:
description: A string indicating which query parameter caused the error.
type: string
error_code:
type: integer
format: int32
message:
type: string
nullable: true
additionalProperties: false
title: Error
uniqueItems: true
title: Failure
example:
errors:
- id: ed42afdc-f0d5-4c0d-b428-9fc6ed6e279d
status: '500'
code: out_of_gas
title: DeLorean Out Of Gas
detail: The DeLorean has run out of gas, but Doc Brown will fill 'er up for you asap
x-codeSamples:
- lang: Shell
source: "curl --request POST \\\n --url https://api.confluent.cloud/partner/v2/entitlements \\\
\n --header 'Authorization: Bearer REPLACE_BEARER_TOKEN' \\\n --header 'content-type: application/json'\
\ \\\n --data '{\"external_id\":\"1111-2222-3333-4444\",\"name\":\"Acme Prod Entitlement\"\
,\"plan_id\":\"confluent-cloud-payg-prod\",\"product_id\":\"confluent-cloud-kafka-service-azure\"\
,\"usage_reporting_id\":\"1111-2222-3333-4444\",\"resource_id\":\"1111-2222-3333-4444\",\"organization\"\
:{\"related\":\"string\"}}'"
- lang: Java
source: "OkHttpClient client = new OkHttpClient();\n\nMediaType mediaType = MediaType.parse(\"\
application/json\");\nRequestBody body = RequestBody.create(mediaType, \"{\\\"external_id\\\"\
:\\\"1111-2222-3333-4444\\\",\\\"name\\\":\\\"Acme Prod Entitlement\\\",\\\"plan_id\\\":\\\"\
confluent-cloud-payg-prod\\\",\\\"product_id\\\":\\\"confluent-cloud-kafka-service-azure\\\"\
,\\\"usage_reporting_id\\\":\\\"1111-2222-3333-4444\\\",\\\"resource_id\\\":\\\"1111-2222-3333-4444\\\
\",\\\"organization\\\":{\\\"related\\\":\\\"string\\\"}}\");\nRequest request = new Request.Builder()\n\
\ .url(\"https://api.confluent.cloud/partner/v2/entitlements\")\n .post(body)\n .addHeader(\"\
content-type\", \"application/json\")\n .addHeader(\"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\"\
)\n .build();\n\nResponse response = client.newCall(request).execute();"
- lang: Go
source: "package main\n\nimport (\n\t\"fmt\"\n\t\"strings\"\n\t\"net/http\"\n\t\"io/ioutil\"\n\
)\n\nfunc main() {\n\n\turl := \"https://api.confluent.cloud/partner/v2/entitlements\"\n\n\t\
payload := strings.NewReader(\"{\\\"external_id\\\":\\\"1111-2222-3333-4444\\\",\\\"name\\\"\
:\\\"Acme Prod Entitlement\\\",\\\"plan_id\\\":\\\"confluent-cloud-payg-prod\\\",\\\"product_id\\\
\":\\\"confluent-cloud-kafka-service-azure\\\",\\\"usage_reporting_id\\\":\\\"1111-2222-3333-4444\\\
\",\\\"resource_id\\\":\\\"1111-2222-3333-4444\\\",\\\"organization\\\":{\\\"related\\\":\\\"\
string\\\"}}\")\n\n\treq, _ := http.NewRequest(\"POST\", url, payload)\n\n\treq.Header.Add(\"\
content-type\", \"application/json\")\n\treq.Header.Add(\"Authorization\", \"Bearer REPLACE_BEARER_TOKEN\"\
)\n\n\tres, _ := http.DefaultClient.Do(req)\n\n\tdefer res.Body.Close()\n\tbody, _ := ioutil.ReadAll(res.Body)\n\
\n\tfmt.Println(res)\n\tfmt.Println(string(body))\n\n}"
- lang: Python
source: "import http.client\n\nconn = http.client.HTTPSConnection(\"api.confluent.cloud\")\n\n\
payload = \"{\\\"external_id\\\":\\\"1111-2222-3333-4444\\\",\\\"name\\\":\\\"Acme Prod Entitlement\\\
\",\\\"plan_id\\\":\\\"confluent-cloud-payg-prod\\\",\\\"product_id\\\":\\\"confluent-cloud-kafka-service-azure\\\
\",\\\"usage_reporting_id\\\":\\\"1111-2222-3333-4444\\\",\\\"resource_id\\\":\\\"1111-2222-3333-4444\\\
\",\\\"organization\\\":{\\\"related\\\":\\\"string\\\"}}\"\n\nheaders = {\n 'content-type':\
\ \"application/json\",\n 'Authorization': \"Bearer REPLACE_BEARER_TOKEN\"\n }\n\nconn.request(\"\
POST\", \"/partner/v2/entitlements\", payload, headers)\n\nres = conn.getresponse()\ndata =\
\ res.read()\n\nprint(data.decode(\"utf-8\"))"
- lang: Node
source: "const http = require(\"https\");\n\nconst options = {\n \"method\": \"POST\",\n \"\
hostname\": \"api.confluent.cloud\",\n \"port\": null,\n \"path\": \"/partner/v2/entitlements\"\
,\n \"headers\": {\n \"content-type\": \"application/json\",\n \"Authorization\": \"\
Bearer REPLACE_BEARER_TOKEN\"\n }\n};\n\nconst req = http.request(options, function (res) {\n\
\ const chunks = [];\n\n res.on(\"data\", function (chunk) {\n chunks.push(chunk);\n });\n\
\n res.on(\"end\", function () {\n const body = Buffer.concat(chunks);\n console.log(body.toString());\n\
\ });\n});\n\nreq.write(JSON.stringify({\n external_id: '1111-2222-3333-4444',\n name: 'Acme\
\ Prod Entitlement',\n plan_id: 'confluent-cloud-payg-prod',\n product_id: 'confluent-cloud-kafka-service-azure',\n\
\ usage_reporting_id: '1111-2222-3333-4444',\n resource_id: '1111-2222-3333-4444',\n organization:\
\ {related: 'string'}\n}));\nreq.end();"
- lang: C
source: 'CURL *hnd = curl_easy_init();
curl_easy_setopt(hnd, CURLOPT_CUSTOMREQUEST, "POST");
curl_easy_setopt(hnd, CURLOPT_URL, "https://api.confluent.cloud/partner/v2/entitlements");
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "content-type: application/json");
headers = curl_slist_append(headers, "Authorization: Bearer REPLACE_BEARER_TOKEN");
curl_easy_setopt(hnd, CURLOPT_HTTPHEADER, headers);
curl_easy_setopt(hnd, CURLOPT_POSTFIELDS, "{\"external_id\":\"1111-2222-3333-4444\",\"name\":\"Acme
Prod Entitlement\",\"plan_id\":\"confluent-cloud-payg-prod\",\"product_id\":\"confluent-cloud-kafka-service-azure\",\"usage_reporting_id\":\"1111-2222-3333-4444\",\"resource_id\":\"1111-2222-3333-4444\",\"organization\":{\"related\":\"string\"}}");
CURLcode ret = curl_easy_perform(hnd);'
- lang: C#
source: 'var client = new RestClient("https://api.confluent.cloud/partner/v2/entitlements");
var request = new RestRequest(Method.POST);
request.AddHeader("content-type", "application/json");
request.AddHeader("Authorization", "Bearer REPLACE_BEARER_TOKEN");
request.AddParameter("application/json", "{\"external_id\":\"1111-2222-3333-4444\",\"name\":\"Acme
Prod Entitlement\",\"plan_id\":\"confluent-cloud-payg-prod\",\"product_id\":\"confluent-cloud-kafka-service-azure\",\"usage_reporting_id\":\"1111-2222-3333-4444\",\"resource_id\":\"1111-2222-3333-4444\",\"organization\":{\"related\":\"string\"}}",
ParameterType.RequestBody);
IRestResponse response = client.Execute(request);'
servers:
- url: https://api.confluent.cloud
description: Confluent Cloud API
jsonRequestBodyExample:
external_id: 1111-2222-3333-4444
name: Acme Prod Entitlement
plan_id: confluent-cloud-payg-prod
product_id: confluent-cloud-kafka-service-azure
usage_reporting_id: 1111-2222-3333-4444
resource_id: 1111-2222-3333-4444
organization:
id: string
environment: string