Licenciamento

Visão geral

A API de licenciamento permite automatizar tarefas relacionadas ao licenciamento de produtos, como listar produtos, extensões e licenças, bem como criar, adicionar e remover licenças.

GET /api/licensing/v1/licenses

Listas as licenças da base de dados.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/licenses -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "productName": "Engine",
        "type": "nominalUser",
        "quantity": 50,
        "extensions": [],
        "licenseeName": "Empresa Licenciada Ltda.",
        "licenserKey": 364943474,
        "productKey": -1898148465,
        "licenseeId": "00.000.000/0000-00",
        "expiration": "2099-12-31"
    },
    {
        "productName": "Web Framework",
        "type": "simultaneousUser",
        "quantity": 3,
        "extensions": [],
        "licenseeName": "Empresa Licenciada Ltda.",
        "licenserKey": 364943474,
        "productKey": -1898141854,
        "licenseeId": "00.000.000/0000-00",
        "expiration": "2099-12-31"
    },
    {
        "productName": "Product Example",
        "type": "nominalUser",
        "quantity": 50,
        "extensions": [-12345678, -12343459],
        "licenseeName": "Empresa Licenciada Ltda.",
        "licenserKey": 364943474,
        "productKey": -189814185,
        "licenseeId": "00.000.000/0000-00",
        "expiration": "2099-12-31"
    },
]

GET /api/licensing/v1/licenses/<key>

Obtém informações de uma licença.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Caminho do ponto de acesso:
    • key: a chave da licença
  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/licenses/<key> -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "productName": "Engine",
    "type": "nominalUser",
    "quantity": 50,
    "extensions": [],
    "licenseeName": "Empresa Licenciada Ltda.",
    "licenserKey": 364943474,
    "productKey": -1898148465,
    "licenseeId": "00.000.000/0000-00",
    "expiration": "2099-12-31"
}

DELETE /api/licensing/v1/licenses/<key>

Remove uma licença

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Caminho do ponto de acesso:
    • key: a chave da licença
  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X DELETE -i https://<your_domain>:<port>/api/licensing/v1/licenses/<key> -u '<user>:<pass>'

Resultados:

  • Licença removida com sucesso:
HTTP/1.1 200 OK
  • Produto já não possui licença:
HTTP/1.1 204 No Content

POST /api/licensing/v1/licenses

Adiciona uma ou mais licenças a partir de um código de licença encriptado. Este código pode ser gerado usando a API "POST /api/licensing/v1/licenses/create".

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Query string: nenhum
  • Corpo da requisição: código de licença encriptado

Exemplo de consumo:

curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses 
    -u '<user>:<pass>'
    -H 'Content-Type: text/plain'
    -d 'oem21so3eh29poi3nyxmOIUMDXQmlksjid9238846xn9238xslMLKDJOJlkmdlkmd='

Resultado:

HTTP/1.1 200 OK

POST /api/licensing/v1/licenses/create

Cria uma licença, retornando o código encriptado para ser usado na adição de licenças com a API "POST /api/licensing/v1/licenses".

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Query string: nenhum
  • Corpo da requisição: JSON seguindo o seguinte esquema:
    {  
        "type": "object",
        "properties": {
            "licenserKey": { "type": "number" },
            "licenseVersion": { "type": "number" },
            "licenseeId": { "type": "string", "required": true },
            "licenseeName": { "type": "string", "required": true },
            "expiration": { "type": "string", "required": true },
            "licenses": {
                "type": "array",
                "required": true,
                "minItems": 1,
                "items": {
                    "type": "object",
                    "properties": {
                        "productKey": { "type": "number", "required": true },
                        "quantity": { "type": "number", "required": true },
                        "type": { "type": "string", "required": true },
                        "extensions": {
                            "type": "array",
                            "items": { "type": "number" }
                        }
                    }
                }
            }
        }
    }
    
    • licenserKey só deve ser preenchido para renovação de licença.
    • licenseVersion é opcional, e caso vazio, será usada a versão de licenciamento mais atual.
    • expiration é uma data no formato “YYYY-MM-DD”.
    • type pode ser: ‘connection’, ‘processor’, ‘nominalUser’, ‘simultaneousUser’ ou ‘custom’. Ou seus respectivos códigos: ‘C’, ‘P’, ‘U’, ‘S’ ou ‘X’.

Exemplos de consumo:

curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses/create
    -u '<user>:<pass>'
    -H 'Content-Type: application/json'
    -d '{
            "licenseVersion": 3,
            "licenserKey": 21312445
            "licenseeId": "00.000.000/0000-00",
            "licenseeName": "Empresa Licenciada Ltda.",
            "expiration": "2099-12-31",
            "licenses": [
                {
                    "productKey": -189814185, 
                    "type": "nominalUser",
                    "quantity": 50,
                    "extensions": [-12345678, -12343459]
                },
                {
                    "productKey": -1898141854, 
                    "type": "simultaneousUser",
                    "quantity": 8
                }
            ]
        }'
curl -X POST -i https://<your_domain>:<port>/api/licensing/v1/licenses/create
    -u '<user>:<pass>'
    -H 'Content-Type: application/json'
    -d '{
            "licenseeId": "00.000.000/0000-00",
            "licenseeName": "Empresa Licenciada Ltda.",
            "expiration": "2099-12-31",
            "licenses": [
                {
                    "productKey": -1898148465, 
                    "type": "nominalUser",
                    "quantity": 50
                }
            ]
        }'

Resultado:

HTTP/1.1 200 OK
Content-Type: text/plain

oem21so3eh29poi3nyxmOIUMDXQmlksjid9238846xn9238xslMLKDJOJlkmdlkmd=

GET /api/licensing/v1/products

Lista os produtos para os quais a base pode gerar licenças.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "name": "Product Example",
        "key": -189814185,
        "extensions": [-12345678, -12343459]
    }
    {
        "name": "Web Framework",
        "key": -1898141854,
        "extensions": []
    },
    {
        "name": "Engine",
        "key": -1898148465,
        "extensions": []
    }
]

GET /api/licensing/v1/products/<key>

Obtém informações de um produto para o qual a base pode gerar licenças.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Caminho do ponto de acesso:
    • key: a chave do produto
  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products/<key> -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "name": "Engine",
    "key": -1898148465,
    "extensions": []
}

GET /api/licensing/v1/products/<key>/extensions

Lista as extensões de um produto para o qual a base pode gerar licenças.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Caminho do ponto de acesso:
    • key: a chave do produto
  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/products/<key>/extensions -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "key": 122343456,
        "name": "Extension Example 1"
        "code": "ext1"
        "productName": "Web Framework",
        "productKey": -1898141854
    },
    {
        "key": 122343432,
        "name": "Extension Example 2"
        "code": "ext2"
        "productName": "Web Framework",
        "productKey": -1898141854
    }
]

GET /api/licensing/v1/extensions

Lista todas as extensões de produtos para os quais a base pode gerar licenças.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/extensions -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

[
    {
        "key": 122343456,
        "name": "WF Extension Ex1"
        "code": "ext-wf1"
        "productName": "Web Framework",
        "productKey": -1898141854
    },
    {
        "key": 122343432,
        "name": "WF Extension Ex2"
        "code": "ext-wf2"
        "productName": "Web Framework",
        "productKey": -1898141854
    },
    {
        "key": 122343109,
        "name": "Dev Extension Example"
        "code": "ext-dev"
        "productName": "Development",
        "productKey": -1898141853
    }
]

GET /api/licensing/v1/extensions/<key>

Obtém as informações de uma extensão de um produto para o qual a base pode gerar licenças.

Escopo de autorização requerido:

  • api.licensing

Parâmetros:

  • Caminho do ponto de acesso:
    • key: a chave da extensão
  • Query string: nenhum
  • Corpo da requisição: nenhum

Exemplo de consumo:

curl -X GET -i https://<your_domain>:<port>/api/licensing/v1/extensions/<key> -u '<user>:<pass>'

Resultado:

HTTP/1.1 200 OK
Content-Type: application/json

{
    "key": 122343456,
    "name": "WF Extension Ex1"
    "code": "ext-wf1"
    "productName": "Web Framework",
    "productKey": -1898141854
}