BokaMera.API.Host

<back to all web services

CancelLicense

Requires Authentication
Requires any of the roles:bookingsupplier-administrator-write, superadmin
The following routes are available for this service:
DELETE/licenses/company/{Id}Cancel a license to a companyCancel an existing license to the company for the logged in user. The license will have it end date set to after it's period of notice.
import datetime
import decimal
from marshmallow.fields import *
from servicestack import *
from typing import *
from dataclasses import dataclass, field
from dataclasses_json import dataclass_json, LetterCase, Undefined, config
from enum import Enum, IntEnum


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LicenseItemsResponse:
    id: int = 0
    name: Optional[str] = None
    allowed_items: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class BaseModel:
    pass


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Currency(BaseModel):
    # @Required()
    name: Optional[str] = None

    # @Required()
    currency_sign: Optional[str] = None

    # @Required()
    active: bool = False

    modified_date: Optional[datetime.datetime] = None
    # @Required()
    id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class Country(BaseModel):
    # @References(typeof(Currency))
    currency_id: Optional[str] = None

    currency_info: Optional[Currency] = None
    # @Required()
    name: Optional[str] = None

    culture: Optional[str] = None
    time_zone: Optional[str] = None
    modified_date: Optional[datetime.datetime] = None
    # @Required()
    id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LicensePriceResponse:
    license_type_id: int = 0
    country_id: Optional[str] = None
    price: int = 0
    country: Optional[Country] = None
    license_plan_id: int = 0


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class LicenseTypeQueryResponse:
    # @ApiMember(Description="The license type id")
    id: int = 0
    """
    The license type id
    """


    # @ApiMember(Description="The license type name")
    name: Optional[str] = None
    """
    The license type name
    """


    # @ApiMember(Description="The license type description")
    description: Optional[str] = None
    """
    The license type description
    """


    # @ApiMember(Description="If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.")
    is_extra_license_option: bool = False
    """
    If the license type is not a standard license but instead an extra license option. An example would be sending new letter license.
    """


    # @ApiMember(Description="The period of notice for the license in days.")
    period_of_notice_days: int = 0
    """
    The period of notice for the license in days.
    """


    # @ApiMember(Description="The license items for the license type")
    items: Optional[List[LicenseItemsResponse]] = None
    """
    The license items for the license type
    """


    # @ApiMember(Description="The license prices in each country for the license type")
    prices: Optional[List[LicensePriceResponse]] = None
    """
    The license prices in each country for the license type
    """


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class ProductGroupResponse:
    id: Optional[str] = None
    name: Optional[str] = None
    tier_id: Optional[str] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class TierResponse:
    id: Optional[str] = None
    name: Optional[str] = None
    product_groups: Optional[List[ProductGroupResponse]] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class VossSubscriptionResponse:
    subscription_billing_period_start_date: datetime.datetime = datetime.datetime(1, 1, 1)
    subscription_billing_period_end_date: datetime.datetime = datetime.datetime(1, 1, 1)
    tier: Optional[TierResponse] = None


@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CompanyLicenseQueryResponse:
    id: int = 0
    type_id: int = 0
    type: Optional[LicenseTypeQueryResponse] = None
    valid_from: datetime.datetime = datetime.datetime(1, 1, 1)
    valid_to: datetime.datetime = datetime.datetime(1, 1, 1)
    voss_subscription_id: Optional[str] = None
    voss_subscription: Optional[VossSubscriptionResponse] = None
    meta_data: Optional[str] = None
    active: bool = False
    canceled: bool = False
    updated: datetime.datetime = datetime.datetime(1, 1, 1)
    created: datetime.datetime = datetime.datetime(1, 1, 1)


# @ApiResponse(Description="You were unauthorized to call this service", StatusCode=401)
# @ValidateRequest(Validator="IsAuthenticated")
@dataclass_json(letter_case=LetterCase.CAMEL, undefined=Undefined.EXCLUDE)
@dataclass
class CancelLicense(ICompany):
    # @ApiMember(Description="The company id, if empty will use the company id for the user you are logged in with.")
    company_id: Optional[str] = None
    """
    The company id, if empty will use the company id for the user you are logged in with.
    """


    # @ApiMember(Description="Id of the license", IsRequired=true, ParameterType="path")
    id: int = 0
    """
    Id of the license
    """

Python CancelLicense DTOs

To override the Content-type in your clients, use the HTTP Accept Header, append the .xml suffix or ?format=xml

HTTP + XML

The following are sample HTTP requests and responses. The placeholders shown need to be replaced with actual values.

DELETE /licenses/company/{Id} HTTP/1.1 
Host: testapi.bokamera.se 
Accept: application/xml
HTTP/1.1 200 OK
Content-Type: application/xml
Content-Length: length

<CompanyLicenseQueryResponse xmlns:i="http://www.w3.org/2001/XMLSchema-instance" xmlns="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Dtos">
  <Active>false</Active>
  <Canceled>false</Canceled>
  <Created>0001-01-01T00:00:00</Created>
  <Id>0</Id>
  <MetaData>String</MetaData>
  <Type>
    <Description>String</Description>
    <Id>0</Id>
    <IsExtraLicenseOption>false</IsExtraLicenseOption>
    <Items>
      <LicenseItemsResponse>
        <AllowedItems>0</AllowedItems>
        <Id>0</Id>
        <Name>String</Name>
      </LicenseItemsResponse>
    </Items>
    <Name>String</Name>
    <PeriodOfNoticeDays>0</PeriodOfNoticeDays>
    <Prices>
      <LicensePriceResponse>
        <Country xmlns:d5p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Db">
          <d5p1:Culture>String</d5p1:Culture>
          <d5p1:CurrencyId>String</d5p1:CurrencyId>
          <d5p1:CurrencyInfo>
            <d5p1:Active>false</d5p1:Active>
            <d5p1:CurrencySign>String</d5p1:CurrencySign>
            <d5p1:Id>String</d5p1:Id>
            <d5p1:ModifiedDate xmlns:d7p1="http://schemas.datacontract.org/2004/07/System">
              <d7p1:DateTime>0001-01-01T00:00:00Z</d7p1:DateTime>
              <d7p1:OffsetMinutes>0</d7p1:OffsetMinutes>
            </d5p1:ModifiedDate>
            <d5p1:Name>String</d5p1:Name>
          </d5p1:CurrencyInfo>
          <d5p1:Id>String</d5p1:Id>
          <d5p1:ModifiedDate xmlns:d6p1="http://schemas.datacontract.org/2004/07/System">
            <d6p1:DateTime>0001-01-01T00:00:00Z</d6p1:DateTime>
            <d6p1:OffsetMinutes>0</d6p1:OffsetMinutes>
          </d5p1:ModifiedDate>
          <d5p1:Name>String</d5p1:Name>
          <d5p1:TimeZone>String</d5p1:TimeZone>
        </Country>
        <CountryId>String</CountryId>
        <LicensePlanId>0</LicensePlanId>
        <LicenseTypeId>0</LicenseTypeId>
        <Price>0</Price>
      </LicensePriceResponse>
    </Prices>
  </Type>
  <TypeId>0</TypeId>
  <Updated>0001-01-01T00:00:00</Updated>
  <ValidFrom>0001-01-01T00:00:00</ValidFrom>
  <ValidTo>0001-01-01T00:00:00</ValidTo>
  <VossSubscription xmlns:d2p1="http://schemas.datacontract.org/2004/07/BokaMera.API.ServiceModel.Helpers.VossHelper">
    <d2p1:SubscriptionBillingPeriodEndDate>0001-01-01T00:00:00</d2p1:SubscriptionBillingPeriodEndDate>
    <d2p1:SubscriptionBillingPeriodStartDate>0001-01-01T00:00:00</d2p1:SubscriptionBillingPeriodStartDate>
    <d2p1:Tier>
      <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
      <d2p1:Name>String</d2p1:Name>
      <d2p1:ProductGroups>
        <d2p1:ProductGroupResponse>
          <d2p1:Id>00000000-0000-0000-0000-000000000000</d2p1:Id>
          <d2p1:Name>String</d2p1:Name>
          <d2p1:TierId>00000000-0000-0000-0000-000000000000</d2p1:TierId>
        </d2p1:ProductGroupResponse>
      </d2p1:ProductGroups>
    </d2p1:Tier>
  </VossSubscription>
  <VossSubscriptionId>00000000-0000-0000-0000-000000000000</VossSubscriptionId>
</CompanyLicenseQueryResponse>