Set Subscription addon ====================== Add a subscription addon. Prerequisites ^^^^^^^^^^^^^ - Credentials as described in :doc:`/getting-started/authentication` - A subscription identifier - OfferId represents Product.PartNumber provided by :doc:`/scenarios/subscriptionaddonoffers-get` C# ^^ To set subscription addon, **SubscriptionId** and **OfferId** are required. Next, get the instance of **CrayonApiClient** and then get the client token using the instance. This client token will be passed when adding the subscription addon. Finally, call **Subscriptions.SetSubscriptionAddon()** method to set addon to the subscription by passing the token, instance of **PostSubscriptionAddOn** and **SubscriptionId**. .. code-block:: c# :emphasize-lines: 10 var subscriptionAddon = new PostSubscriptionAddOn { Quantity = 1, OfferId = "53FC25F7-6639-4F78-BB44-3C2DFEC3ED40", SubscriptionTags = null }; var client = new CrayonApiClient("https://api.crayon.com/"); var token = client.Tokens.GetUserToken(clientId, clientSecret, userName, password).GetData().AccessToken; var result = client.Subscriptions.SetSubscriptionAddon(token, subscriptionAddon, subscriptionId); Request ^^^^^^^ Request Syntax: +---------+------------------------------------------------------------------------+ | Method | Request URI | +=========+========================================================================+ | POST | *https://api.crayon.com/api/v1/subscriptions/{subscriptionId}/addons* | +---------+------------------------------------------------------------------------+ Request Body: +-------------------+----------------------------------------------+-----------------------------------+ | Name | Type | Description | +===================+==============================================+===================================+ | subscription | :doc:`/resources/PostSubscriptionAddOn` | The subscription to create | +-------------------+----------------------------------------------+-----------------------------------+ PostSubscriptionAddOn Properties: +-------------------------+------------------------------------------+----------------+ | Name | Type | Required | +=========================+==========================================+================+ | Quantity | int | Yes | +-------------------------+------------------------------------------+----------------+ | OfferId | string | Yes | +-------------------------+------------------------------------------+----------------+ | SubscriptionTags | SubscriptionTags | No | +-------------------------+------------------------------------------+----------------+ SubscriptionTags Properties: +-------------------------+----------------------------+---------------------------------------------------------------------------+ | Name | Type | Description | +=========================+============================+===========================================================================+ | SubscriptionId | int | Identifier of the subscription | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | Department | string | Free text added on Subscription level in Department field in Cloud-iQ. | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | CostCenter | string | Free text added on Subscription level in Cost Center field in Cloud-iQ. | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | Project | string | Free text added on Subscription level in Project field in Cloud-iQ. | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | Owner | string | Free text added on Subscription level in Owner field in Cloud-iQ. | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | Custom | string | Free text added on Subscription level in Custom field in Cloud-iQ. | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | CreatedDate | DateTime | Date and time when tags were created | +-------------------------+----------------------------+---------------------------------------------------------------------------+ | ModifiedDate | DateTime | Date and time when tags were modified the last time | +-------------------------+----------------------------+---------------------------------------------------------------------------+ Request Headers: The following HTTP request headers are supported +------------------+----------------+-----------------------------------------------------------------+ | Header | Type | Description | +==================+================+=================================================================+ | Authorization | string | Required. The authorization token in the form Bearer . | +------------------+----------------+----------------------------------------------+------------------+ | Accept | string | Specifies the request and response type, "application/json". | +------------------+----------------+----------------------------------------------+------------------+ | Content-Type | string | Specifies the media type of the resource, "application/json". | +------------------+----------------+----------------------------------------------+------------------+ Request Example: :: POST $"https://api.crayon.com/api/v1/subscriptions/{subscriptionId}/addons" Accept: application/json Content-Type: application/json Authorization: Bearer < Token > Request Body: .. literalinclude:: /scenarios/_static/PostSubscriptionAddonRequest.json :language: json Response ^^^^^^^^ If successful, this method returns **true** in the response body. Response success and error codes: Each response comes with an HTTP status code that indicates success or failure and additional debugging information. Use a network trace tool to read this code, error type, and additional parameters. +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | Error Codes | Description | +================================+===========================================================================================================================================================================================================================================================================================+ | 200 Ok | The request has succeeded. | +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 400 Bad Request | The request could not be understood by the server due to malformed syntax, missing required properties, properties that couldn't be parsed according to their type (and length). It is a non-retryable error condition. The client should not repeat the request without modifications. | +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 401 Unauthorized | The request requires user authentication. If the request already included Authorization credentials, then the 401 (Unauthorized) status code means that authorization has been refused for those credentials. It is a non-retryable error condition. | +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+ | 404 Not Found | The server has not found anything matching the request. | +--------------------------------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+