Skip to content

Promotions Campaigns

Operations Summary

Method Endpoint Description
Core CRUD
GET /api/promotions-campaigns/ List Promotions Campaigns
GET /api/promotions-campaigns/{uuid}/ Retrieve
POST /api/promotions-campaigns/ Create
PUT /api/promotions-campaigns/{uuid}/ Update
DELETE /api/promotions-campaigns/{uuid}/ Delete
Other Actions
GET /api/promotions-campaigns/{uuid}/orders/ Return a list of orders for which the campaign is applied
GET /api/promotions-campaigns/{uuid}/resources/ Return a list of resources for which the campaign is applied
POST /api/promotions-campaigns/{uuid}/activate/ Activate campaign
POST /api/promotions-campaigns/{uuid}/terminate/ Terminate campaign

Core CRUD

List Promotions Campaigns

1
2
3
4
http \
  GET \
  https://api.example.com/api/promotions-campaigns/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_list.sync(client=client)

for item in response:
    print(item)
  1. API Source: promotions_campaigns_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
import { promotionsCampaignsList } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsList({
  auth: "Token YOUR_API_TOKEN"
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Description
discount_type string
end_date string (date)
o array Ordering

offering string Offering
offering_uuid string (uuid)
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.
query string Search by name or coupon code
service_provider_uuid string (uuid)
start_date string (date)
state array

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
uuid string (uuid)
name string
url string (uri)
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
state string
service_provider string (uri)
offerings array of objects
offerings.uuid string (uuid)
offerings.name string
required_offerings array of string (uuid)s

Retrieve

1
2
3
4
http \
  GET \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_retrieve # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_retrieve.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: promotions_campaigns_retrieve
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsRetrieve } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsRetrieve({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 -

Field Type Description
uuid string (uuid)
name string
url string (uri)
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
state string
service_provider string (uri)
offerings array of objects
offerings.uuid string (uuid)
offerings.name string
required_offerings array of string (uuid)s

Create

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
http \
  POST \
  https://api.example.com/api/promotions-campaigns/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-promotions-campaign" \
  start_date="2023-10-01" \
  end_date="2023-10-01" \
  discount_type="discount" \
  discount=123 \
  service_provider="https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/" \
  offerings:='[]'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.campaign_request import CampaignRequest # (1)
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_create # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = CampaignRequest(
    name="my-awesome-promotions-campaign",
    start_date="2023-10-01",
    end_date="2023-10-01",
    discount_type="discount",
    discount=123,
    service_provider="https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    offerings=[]
)
response = promotions_campaigns_create.sync(
    client=client,
    body=body_data
)

print(response)
  1. Model Source: CampaignRequest
  2. API Source: promotions_campaigns_create
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
import { promotionsCampaignsCreate } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsCreate({
  auth: "Token YOUR_API_TOKEN",
  body: {
    "name": "my-awesome-promotions-campaign",
    "start_date": "2023-10-01",
    "end_date": "2023-10-01",
    "discount_type": "discount",
    "discount": 123,
    "service_provider": "https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    "offerings": []
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Field Type Required Description
name string
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
service_provider string (uri)
offerings array of string (uuid)s
Constraints: write-only
required_offerings array of string (uuid)s

201 -

Field Type Description
uuid string (uuid)
name string
url string (uri)
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
state string
service_provider string (uri)
offerings array of objects
offerings.uuid string (uuid)
offerings.name string
required_offerings array of string (uuid)s

Update

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
http \
  PUT \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN" \
  name="my-awesome-promotions-campaign" \
  start_date="2023-10-01" \
  end_date="2023-10-01" \
  discount_type="discount" \
  discount=123 \
  service_provider="https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/" \
  offerings:='[]'
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.models.campaign_request import CampaignRequest # (1)
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_update # (2)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)

body_data = CampaignRequest(
    name="my-awesome-promotions-campaign",
    start_date="2023-10-01",
    end_date="2023-10-01",
    discount_type="discount",
    discount=123,
    service_provider="https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    offerings=[]
)
response = promotions_campaigns_update.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client,
    body=body_data
)

print(response)
  1. Model Source: CampaignRequest
  2. API Source: promotions_campaigns_update
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
import { promotionsCampaignsUpdate } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsUpdate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  },
  body: {
    "name": "my-awesome-promotions-campaign",
    "start_date": "2023-10-01",
    "end_date": "2023-10-01",
    "discount_type": "discount",
    "discount": 123,
    "service_provider": "https://api.example.com/api/service-provider/a1b2c3d4-e5f6-7890-abcd-ef1234567890/",
    "offerings": []
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Field Type Required Description
name string
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
service_provider string (uri)
offerings array of string (uuid)s
Constraints: write-only
required_offerings array of string (uuid)s

200 -

Field Type Description
uuid string (uuid)
name string
url string (uri)
start_date string (date) Starting from this date, the campaign is active.
end_date string (date) The last day the campaign is active.
coupon string If coupon is empty, campaign is available to all users.
discount_type string
Enum: discount, special_price
discount integer
stock integer
description string
months integer How many months in a row should the related service (when activated) get special deal (0 for indefinitely until active)
auto_apply boolean
state string
service_provider string (uri)
offerings array of objects
offerings.uuid string (uuid)
offerings.name string
required_offerings array of string (uuid)s

Delete

1
2
3
4
http \
  DELETE \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_destroy # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_destroy.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: promotions_campaigns_destroy
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsDestroy } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsDestroy({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

204 - No response body


Other Actions

Return a list of orders for which the campaign is applied

Return a list of orders for which the campaign is applied.

1
2
3
4
http \
  GET \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/orders/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_orders_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_orders_list.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

for item in response:
    print(item)
  1. API Source: promotions_campaigns_orders_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsOrdersList } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsOrdersList({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Name Type Description
field array
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
offering string (uri)
offering_name string
offering_uuid string (uuid)
offering_description string
offering_image string (uri)
offering_thumbnail string (uri)
offering_type string
offering_shared boolean Accessible to all customers.
offering_billable boolean Purchase and usage is invoiced.
offering_plugin_options any Public data used by specific plugin, such as storage mode for OpenStack.
provider_name string
provider_uuid string (uuid)
provider_slug string
category_title string
category_uuid string (uuid)
category_icon string (uri)
plan string (uri)
plan_unit any
plan_name string
plan_uuid string (uuid)
plan_description string
attributes any
limits object (free-form)
uuid string (uuid)
created string (date-time)
modified string (date-time)
resource_uuid string (uuid)
resource_type string
resource_name string
cost string (decimal)
state any
output string
marketplace_resource_uuid string (uuid)
error_message string
error_traceback string
callback_url string (uri)
completed_at string (date-time)
request_comment string
attachment string (uri)
type any
start_date string (date) Enables delayed processing of resource provisioning order.
url string (uri)
consumer_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_by_full_name string
consumer_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
consumer_reviewed_at string (date-time)
provider_reviewed_by string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_by_full_name string
provider_reviewed_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
provider_reviewed_at string (date-time)
created_by_username string Required. 128 characters or fewer. Lowercase letters, numbers and @/./+/-/_ characters
created_by_full_name string
created_by_civil_number string
customer_name string
customer_uuid string (uuid)
customer_slug string
project_name string
project_uuid string (uuid)
project_description string
project_slug string
old_plan_name string
new_plan_name string
old_plan_uuid string (uuid)
new_plan_uuid string (uuid)
old_cost_estimate string (decimal)
new_cost_estimate string (decimal)
can_terminate boolean
fixed_price number (double)
activation_price number (double)
termination_comment string
backend_id string
issue any

Return a list of resources for which the campaign is applied

Return a list of resources for which the campaign is applied.

1
2
3
4
http \
  GET \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/resources/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_resources_list # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_resources_list.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

for item in response:
    print(item)
  1. API Source: promotions_campaigns_resources_list
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsResourcesList } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsResourcesList({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)
Name Type Description
field array
page integer A page number within the paginated result set.
page_size integer Number of results to return per page.

200 -

The response body is an array of objects, where each object has the following structure:

Field Type Description
offering string (uri)
offering_name string
offering_uuid string (uuid)
offering_description string
offering_image string (uri)
offering_thumbnail string (uri)
offering_type string
offering_shared boolean Accessible to all customers.
offering_billable boolean Purchase and usage is invoiced.
offering_plugin_options any Public data used by specific plugin, such as storage mode for OpenStack.
provider_name string
provider_uuid string (uuid)
provider_slug string
category_title string
category_uuid string (uuid)
category_icon string (uri)
plan string (uri)
plan_unit any
plan_name string
plan_uuid string (uuid)
plan_description string
attributes object (free-form)
limits object (free-form)
uuid string (uuid)
created string (date-time)
modified string (date-time)
url string (uri)
scope string
description string
state any
resource_uuid string (uuid)
backend_id string
effective_id string
resource_type string
project string (uri)
project_uuid string (uuid)
project_name string
project_description string
project_end_date string (date) The date is inclusive. Once reached, all project resource will be scheduled for termination.
project_end_date_requested_by string (uri)
customer_uuid string (uuid)
customer_name string
offering_slug string
parent_offering_uuid string (uuid)
parent_offering_name string
parent_offering_slug string
parent_uuid string (uuid)
parent_name string
backend_metadata any
is_usage_based boolean
is_limit_based boolean
name string
slug string
current_usages object (free-form)
can_terminate boolean
report array of objects
report.header string
report.body string
end_date string (date) The date is inclusive. Once reached, a resource will be scheduled for termination.
end_date_requested_by string (uri)
username string
limit_usage object (free-form)
downscaled boolean
restrict_member_access boolean
paused boolean
endpoints array of objects
endpoints.uuid string (uuid)
endpoints.name string
endpoints.url string
error_message string
error_traceback string
options any
available_actions array of strings
last_sync string (date-time)
order_in_progress any
creation_order any
service_settings_uuid string (uuid)
project_slug string
customer_slug string
user_requires_reconsent boolean Check if the current user needs to re-consent for this resource's offering.
renewal_date object (free-form)

Activate campaign

Activate campaign.

1
2
3
4
http \
  POST \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/activate/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_activate # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_activate.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: promotions_campaigns_activate
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsActivate } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsActivate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 - No response body


409 - No response body


Terminate campaign

Terminate campaign.

1
2
3
4
http \
  POST \
  https://api.example.com/api/promotions-campaigns/a1b2c3d4-e5f6-7890-abcd-ef1234567890/terminate/ \
  Authorization:"Token YOUR_API_TOKEN"
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
from waldur_api_client.client import AuthenticatedClient
from waldur_api_client.api.promotions_campaigns import promotions_campaigns_terminate # (1)

client = AuthenticatedClient(
    base_url="https://api.example.com", token="YOUR_API_TOKEN"
)
response = promotions_campaigns_terminate.sync(
    uuid="a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    client=client
)

print(response)
  1. API Source: promotions_campaigns_terminate
 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
import { promotionsCampaignsTerminate } from 'waldur-js-client';

try {
  const response = await promotionsCampaignsTerminate({
  auth: "Token YOUR_API_TOKEN",
  path: {
    "uuid": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
  }
});
  console.log('Success:', response);
} catch (error) {
  console.error('Error:', error);
}
Name Type Required
uuid string (uuid)

200 - No response body


409 - No response body