Subscriptions: Suppressions
Subscriptions: Suppressions
#340730
Description
This resource acts as a catalog of the suppression tags or properties to be referenced by the suppressionReferences parameter in the Subscriptions resource . Suppression entries (tags or properties) not defined in a /subscriptions/<platformType>/suppressions resource cannot be referenced; you must define the suppression entries before using them in a suppression condition. See
There is a catalog for each supported <platformType>, which can only be referenced by the corresponding <platformType> subscription. For example, a container subscription (i.e. /subscriptions/containers) can only reference suppressions from the Container Subscriptions Suppressions catalog (i.e. /subscriptions/containers/suppressions).
Suppression entries can be declared as global or private (i.e. user-specific). Global suppression entries can be used by any API enabled user, while private entries can only be used by their owners. Note that administrative users An administrative user is a Densify user in the Administrator user group or with the Analysis Admin role. have access to all suppression entries - global or private user-specific.
Resource
/subscriptions/cloud/suppressions
/subscriptions/containers/suppressions
/subscriptions/suppressions
Note: If you use this resource without the <platformType> specified (i.e. without cloud or containers specified), the behavior is exactly the same as specifying the cloud-specific resource. This behavior enables backward compatibility with scripts using the Densify API prior to release 12.1.6, where the platform-specific indicator was not available.
Supported Operations
Table: Subscriptions Suppressions Supported Operations
HTTP Method |
Input |
Output |
Description |
GET /subscriptions/<platformType>/suppressions |
Path Parameter: Query String Parameter Options: |
Collection of |
Returns a list of existing suppression tags or properties from the platform-specific Subscriptions Suppressions catalog.
See Example: Getting a List of Available Cloud Subscriptions Suppressions. |
GET /subscriptions/<platformType>/suppressions/ <suppressionRef> |
Path Parameters: |
Returns a Subscriptions suppression with unique identifier <suppressionRef> from a platform-specific Subscriptions Suppressions catalog. See Example: Getting a Specific Container Subscriptions Suppression. |
|
POST /subscriptions/<platformType>/suppressions |
Path Parameter: Collection of Request Body Parameters: |
Collection of |
Adds new suppression entries into a platform-specific Subscriptions Suppressions catalog. A suppression entry can be either a tag or a property suppression. You can specify an attributeName or a propertyName, but not both.
|
PUT /subscriptions/<platformType>/suppressions |
Path Parameter: Request Body Parameters: Collection of |
Collection of |
Deletes and replaces parameters for existing suppression entries in a platform-specific Subscriptions Suppressions catalog. You must specify all parameters (except suppressionRef) required for the suppression you want to update.
|
PUT /subscriptions/ suppressions/<suppressionRef> |
Path Parameters: Request Body Parameters: |
Deletes and replaces parameters for an existing suppression entry identified by <suppressionRef> in a platform-specific Subscriptions Suppressions catalog. You must specify all parameters required (in the Request Body Parameters section) for the suppression you want to update, as all previous parameters are deleted.
|
|
DELETE /subscriptions/<platformType>/suppressions |
Path Parameter: Collection of |
|
Deletes suppressions from a platform-specific Subscriptions Suppressions catalog.
|
DELETE /subscriptions/<platformType>/ suppressions/ <suppressionRef> |
Path Parameters: |
|
Deletes a suppression with <suppressionRef> identifier from a platform-specific Subscriptions Suppressions catalog.
|
Table: Subscriptions Suppressions Path Parameters
Parameter Name |
Type |
Required (Y/N) |
Description |
string |
Y |
[cloud|containers] Specify the technology platform for the Subscriptions suppression resource. |
|
string |
Y |
Specify the unique identifier for a Subscriptions suppression entry. |
Table: Subscriptions Suppressions Query String Parameters
Parameter Name |
Type |
Required (Y/N) |
Description |
string |
Specify the type of Subscriptions suppression to return:
A Subscriptions suppression is considered global if the owner parameter is not populated. Global Subscriptions suppressions can be used by all Densify API users. A Subscriptions suppression is considered private if the owner parameter contains a Densify username. Private Subscriptions suppressions can only be used by their owners or administrative users. |
||
string |
If you are an administrative user If you are not an administrative user, you can request for your own private suppressions. If you use the ?type=owner&owner=<anotherusername> query string option with a username other than your own, the returned response is a 400 Bad Request -"Current login user cannot query for owner" error. |
Table: Subscriptions Suppressions Request Body Parameters
Parameter Name |
Type |
Required (C-create/M-modify/D-delete) |
Description |
string |
M D |
Specify the unique identifier for a Subscriptions suppression entry. |
|
string |
C M |
Specify a unique name for a Subscriptions suppression entry. For global Subscriptions suppressions, the suppressionName must be unique within a platform-specific Subscriptions Suppressions catalog. For private Subscriptions suppressions, the suppressionName must be unique per owner and across all global subscription suppressions per platform-specific catalog. For example, owner A and owner B can both have a private suppression named "SuperA", as long as "SuperA" is not also a global suppression within the same platform-specific catalog. |
|
string |
Specify an alias name for the Subscriptions attribute tag. For global suppressions, the aliasName must be unique within a platform-specific Subscriptions Suppressions catalog. For private suppressions, the aliasName must be unique per owner and across all global suppressions per platform-specific catalog. For example, owner A and owner B can both have a private suppression alias named "Joe", as long as "Joe" is also not a global suppression alias within the same platform-specific catalog. |
||
string |
C M |
Specify the attribute name for the Subscriptions suppression entry. The attribute name must exist in the Densify standard set of system attributes. Contact [email protected] for a list of available system attributes. Use the "Resource Tags" attribute name along with key and technology parameters for cloud technology-specific resource attributes in the "key:value" form. See Example: Adding New Subscription Suppressions for "Resource Tags" usage. Use the "Container Labels" attribute name along with key and technology parameters for container-specific attributes in "key:value" form. Note that the attributeName must be unique in a platform-specific Subscriptions Suppressions catalog (i.e. you cannot have two suppressions with the same attributeName in a catalog). |
|
string |
CM1 |
Specify the key string required for the technology platform resource attribute. If the Subscriptions suppression is a reference to a resource attribute (i.e. "attributeName": "Resource Tags" or "attributeName": "Container Labels"), you need to specify both the key and technology platform for the specific resource attribute. |
|
string |
CM2 |
Specify the technology platform for the resource attribute. Currently, the following technology platforms are supported:
If the Subscriptions suppression is a reference to a resource attribute (i.e. "attributeName": "Resource Tags" or "attributeName": "Container Labels"), you need to specify both the key and technology platform for the specific resource attribute. |
|
string |
C M |
Specify the recommendation element for the Subscriptions suppression. The list of available recommendation elements can be found in the Analysis: technology-specific Recommendations page. For example, refer to the Response schema section of the Analysis: AWS Recommendations for a full list of AWS recommendation elements. The propertyName must be unique within a platform-specific Subscriptions Suppressions catalog. |
|
string |
M3 |
When the owner parameter is not set, the Subscriptions suppression is considered global. Global Subscriptions suppressions can be used by all API users. Only administrative users If you are an administrative user, you have the ability to assign any Densify user as the owner of the subscription suppression in a POST request. In a PUT request, administrative users can promote the suppression from private to global by setting owner: "". If you are not an administrative user, you can only set the owner parameter to your Densify username. In a POST request, the owner parameter is automatically populated with your username. |
The following is a complete list of possible response elements that are returned for the /subscriptions/suppressions resource.
Table: Subscriptions Suppressions Response Schema
Element |
Type |
Filter/Sort |
Description |
string |
The unique referenced ID of the Densify Subscriptions suppression entry. |
||
string |
The Subscriptions suppression name. |
||
string |
The Subscriptions suppression alias name. |
||
string |
The attribute name for the Subscriptions suppression entry. |
||
string |
The Subscriptions suppression's technology platform for the resource attribute. |
||
string |
The resource attribute key string for the suppression's associated technology platform. |
||
string |
The Subscriptions suppression property name. |
||
string |
F |
The designated user/owner of this Subscriptions suppression. A Subscriptions suppression is considered global if the owner parameter is not populated. Global Subscriptions suppressions can be used by all Densify API users. A Subscriptions suppression is considered private if the owner parameter contains a Densify username. Private Subscriptions suppressions can only be used by their owners or administrative users |
|
string |
|
The message for the error or status response is returned. |
|
number |
|
The HTTP response code of the request. Possible status values include:
|
Examples
Example: Getting a List of Available Cloud Subscriptions Suppressions
The following example shows you how to retrieve a list of suppressions available to you from the Cloud Subscriptions Suppressions catalog.

Request:
GET /subscriptions/cloud/suppressions
Response:
[
{
"suppressionRef": "2ff4501e-df32-4f57-8a77-e539192fa043",
"suppressionName": "Entity ID",
"propertyName": "entityId",
"aliasName": "supprEntityID",
"owner": ""
},
{
"suppressionRef": "38f6e37c-86f4-44a4-9741-dc9d179cbbc1",
"suppressionName": "Effort Estimate",
"propertyName": "effortEstimate",
"aliasName": "supprEffortEstimate",
"owner": ""
}
...
]
Example: Getting a Specific Container Subscriptions Suppression
The following example shows you how to retrieve a specific container Subscriptions suppression with a known reference ID. This suppression must be of type "global" or owned by you before a successful response is returned.

Request:
GET /subscriptions/containers/suppressions/8b58927e-8f1a-4105-b8f2-5f2b0fd0238d
Response:
{
"suppressionRef": "fdc363b2-523c-4bb5-bdbf-a4f4ef994487",
"suppressionName": "RecommendedMemRequest",
"propertyName": "recommendedMemRequest",
"aliasName": "supprRecMemRequest",
"owner": ""
}
Example: Adding New Subscription Suppressions
This example shows you how to add new suppression entries to the Cloud Subscriptions Suppressions catalog. Notice that the owner parameter is not set. If you are a non-administrative Densify user authenticating the POST request, the owner parameter is automatically set to your username. By having the owner parameter set, the suppression is considered private and can only be used by you (or any administrative user). If you are a Densify administrative user An administrative user is a Densify user in the Administrator user group or with the Analysis Admin role. and you do not set the owner parameter in the POST request, then the suppression is considered global.
If there is an error in the POST request resulting from any one of the suppression additions, then all the suppression additions in the request body are rolled back and not committed.

Request:
POST /subscriptions/cloud/suppressions
Parameters:
[
{
"suppressionName": "Health_Check",
"attributeName": "Health Check",
"aliasName": "Suppr_Health_Check"
},
{
"suppressionName": "AWS RTag Env Suppr",
"attributeName": "Resource Tags",
"key": "Environment :",
"technology": "AWS",
"aliasName": "Suppr_Health_Check"
},
{
"suppressionName": "Recommended_Cost",
"propertyName": "recommendedCost",
"aliasName": "Suppr Recommended Cost"
}
]
Example: Modifying Subscription Suppressions
This example shows you how to modify two subscription suppression entries in the Cloud Subscriptions Suppressions catalog. You need to specify all the request body parameters for PUT request. With the exception of the suppressionRef and owner parameters, all other parameters can be updated If there is an error in the PUT request from any one of the update entries, then all the updates are rolled back and not applied. Note that only the administrative user is eligible to make this PUT request.

Request:
PUT /subscriptions/cloud/suppressions
Parameters:
[
{
"suppressionRef": "61acf182-1773-4988-b4d9-a76c866b5c68",
"suppressionName": "Business Applications",
"attributeName": "Business Applications",
"aliasName": "BusinessApplicationsSuppression",
"owner": ""
},
{
"suppressionRef": "c6da9e05-92be-4ec6-9892-7a2ed68d57f0",
"suppressionName": "Instance Name",
"propertyName": "name",
"aliasName": "SuppressThisName",
"owner": ""
}
]
Example: Modifying a Subscription Suppression
This example shows you how to modify a single cloud Subscriptions suppression using the /subscriptions/cloud/suppressions/<suppressionRef> resource. You need to specify all the request body parameters for a PUT request, even if you only want to modify the suppressionName or aliasName parameters. In this example, you must either be the "saas" user or the administrative user to be authorized to make this PUT request.
Example: Deleting Subscriptions Suppressions
This example shows you how to delete a collection of suppressions from the /subscriptions/cloud/suppressions resource catalog. Keep in mind that you can only delete your own private suppressions from the catalog. Only administrative users An administrative user is a Densify user in the Administrator user group or with the Analysis Admin role. can delete any global and any private suppressions.

Request:
DELETE /subscriptions/cloud/suppressions
Parameters:
[
{
"suppressionRef": "209baebd-fc67-4902-a7a2-d9386af26a4e"
},
{
"suppressionRef": "9cc94889-b15d-4050-aa8f-d9f605271e58"
}
]
Response:
[
{
"suppressionRef": "9cc94889-b15d-4050-aa8f-d9f605271e58",
"status": "404",
"message": "Not found."
},
{
"suppressionRef": "209baebd-fc67-4902-a7a2-d9386af26a4e",
"message": "Delete successfully."
}
]

The Cloud Subscriptions Suppressions catalog contains the following default entries:
[
{
"suppressionRef": "03922061-96eb-450b-a30f-a397a19c9a6f",
"suppressionName": "Effort Estimate",
"propertyName": "effortEstimate",
"aliasName": "supprEffortEstimate",
"owner": ""
},
{
"suppressionRef": "29150379-9252-498d-a59d-de47d183eee8",
"suppressionName": "Approval Type",
"propertyName": "approvalType",
"aliasName": "supprApprovalType",
"owner": ""
},
{
"suppressionRef": "61acf182-1773-4988-b4d9-a76c866b5c68",
"suppressionName": "Business Applications",
"attributeName": "Business Applications",
"aliasName": "supprBusinessApplications",
"owner": ""
},
{
"suppressionRef": "93dba027-8391-4303-b413-7c4cb41ec5e9",
"suppressionName": "Suppress Region",
"propertyName": "region",
"aliasName": "supprRegion",
"owner": ""
},
{
"suppressionRef": "a6827ae4-fa2b-405e-a564-d70f2dad45c2",
"suppressionName": "recommendationType",
"propertyName": "recommendationType",
"aliasName": "supprRecommendationType",
"owner": ""
}
]

The Container Subscriptions Suppressions catalog contains the following default entries:
[
{
"suppressionRef": "fdc363b2-523c-4bb5-bdbf-a4f4ef994487",
"suppressionName": "RecommendedMemRequest",
"propertyName": "recommendedMemRequest",
"aliasName": "supprRecMemRequest",
"owner": ""
}
]