@compusoluciones/microsoft-sdk
v0.2.4
Published
*** ## Tabla de contenidos * Estructura de las credenciales. * Creación del objeto. * Consumption Azure * Obtener el consumo de cada cliente o UF del reseller (no incluida para Azure Plan). * Obtener el costo de todas las suscripciones de un cli
Downloads
15
Keywords
Readme
SDK Microsoft CSP
Tabla de contenidos
- Estructura de las credenciales.
- Creación del objeto.
- Consumption Azure
- Obtener el consumo de cada cliente o UF del reseller (no incluida para Azure Plan).
- Obtener el costo de todas las suscripciones de un cliente.
- Obtener el costo por suscripción.
- Obtener los registros de uso por suscripción. (no incluida para Azure Plan).
- Obtener el registro de uso de cada cliente o UF del reseller.
- Obtener el registro de uso por cliente.
- Obtener el registro de uso por 'meter' por suscripción.
- Obtener los registros de uso por suscripción. (solo para Azure Plan).
- Customer
- (Doc pendiente)
- Offers
- (Doc pendiente)
- Utilities
- (Doc pendiente)
- Billing
- (Doc Pendiente)
- Agreements
- (Doc pendiente)
- Products
- Obtener lista de productos por
- Upgrade Azure
- Revisar eligibilidad para upgrade Azure
- Revisar estatus del upgrade.
- Budget
- Actualizar el budget de un UF.
- Obtener el budget de un UF.
- Invoices
*Obtener todos los invoices
- Obtener invoices por size.
- Obtener invoices por offset.
- Obtener invoices por offset y size.
Credentials.
Es importante usar las credenciales de la cuenta de CSP a la cual vamos a acceder de la siguiente manera:
const credentials = {
clientId: 'client_id',
domain: 'partner_tenant_id',
client_secret: 'client_secret',
refresh_token: 'refresh_token',
};
Debemos crear un nuevo objeto para poder llamar a las funciones de nuestro SDK.
const UserPartnerOperations = require('./dist');
const userPartnerOperations = new UserPartnerOperations(credentials);
Azure Consumption.
1. UsageSummaryAzure
Como llamar esta función:
userPartnerOperations.azure.getTotalSummary()
Ejemplo de respuesta:
{
"customersOverBudget": 2,
"customersTrendingOver": 1,
"customersWithUsageBasedSubscription": 151,
"resourceId": "9e09e971-5b2c-47d3-acec-be60c2665bae",
"id": "9e09e971-5b2c-47d3-acec-be60c2665bae",
"resourceName": "COMPUSOLUCIONES Y ASOCIADOS SA DE CV ",
"name": "COMPUSOLUCIONES Y ASOCIADOS SA DE CV ",
"billingStartDate": "2020-01-22T00:00:00+00:00",
"billingEndDate": "2020-02-21T00:00:00+00:00",
"totalCost": 2581.449771,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-04T12:03:27.833+00:00",
"links": {
"self": {
"uri": "/usagesummary",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "PartnerUsageSummary"
}
}
2. UsageSummaryByCustomer
Como llamar esta función:
userPartnerOperations.customer.byId('customer_id').azure.usageSummaryByCustomer();
Ejemplo de respuesta:
{
"customerSpendingBudget": {
"attributes": {
"objectType": "SpendingBudget"
}
},
"budget": {
"attributes": {
"objectType": "SpendingBudget"
}
},
"resourceId": "b0631ce6-abcc-48b3-a607-20bd8e577c99",
"id": "b0631ce6-abcc-48b3-a607-20bd8e577c99",
"resourceName": "Preventa MS",
"name": "Preventa MS",
"billingStartDate": "2020-02-01T00:00:00+00:00",
"billingEndDate": "2020-03-01T00:00:00+00:00",
"totalCost": 4.55,
"currencyCode": "USD",
"usdTotalCost": 4.55,
"lastModifiedDate": "2020-02-04T16:49:30.7033333+00:00",
"links": {
"self": {
"uri": "/customers/b0631ce6-abcc-48b3-a607-20bd8e577c99/usagesummary",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "CustomerUsageSummary"
}
}
3. UsageSummaryBySubscription
Como llamar esta función:
userPartnerOperations.customer.byId('customer_id').subscriptions.byId('subs_id').azure.usageSummaryById();
Ejemplo de respuesta:
{
"resourceId": "42aebd04-b134-30a7-9c32-00705a5cc72e",
"id": "42aebd04-b134-30a7-9c32-00705a5cc72e",
"resourceName": "Azure plan",
"name": "Azure plan",
"billingStartDate": "2020-02-01T00:00:00+00:00",
"billingEndDate": "2020-03-01T00:00:00+00:00",
"totalCost": 4.55,
"currencyCode": "USD",
"usdTotalCost": 4.55,
"lastModifiedDate": "2020-02-04T16:49:30.7033333+00:00",
"links": {
"self": {
"uri": "/customers/b0631ce6-abcc-48b3-a607-20bd8e577c99/subscriptions/42aebd04-b134-30a7-9c32-00705a5cc72e/usagesummary",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "SubscriptionUsageSummary"
}
}
4. GetCustomerUsageRecords
Como llamar esta función:
userPartnerOperations.customer.byId('customer_id').subscriptions.byId('subs_id').usage.records();
Ejemplo de respuesta:
{
"totalCount": 3,
"items": [
{
"category": "Storage",
"subcategory": "General Block Blob",
"quantityUsed": 0.761,
"unit": "10K",
"resourceId": "211E620C-EBCF-4DB5-A7FD-996ABEBE9546",
"id": "211E620C-EBCF-4DB5-A7FD-996ABEBE9546",
"resourceName": "Write Operations",
"name": "Write Operations",
"totalCost": 0.000233,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "AzureResourceMonthlyUsageRecord"
}
},
{
"category": "Bandwidth",
"subcategory": "",
"quantityUsed": 0.41978,
"unit": "1 GB",
"resourceId": "32C3EBEC-1646-49E3-8127-2CAFBD3A04D8",
"id": "32C3EBEC-1646-49E3-8127-2CAFBD3A04D8",
"resourceName": "Data Transfer In",
"name": "Data Transfer In",
"totalCost": 0,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "AzureResourceMonthlyUsageRecord"
}
},
{
"category": "Storage",
"subcategory": "Tables",
"quantityUsed": 0.001854,
"unit": "1 GB/Month",
"resourceId": "3F2B1E1C-C886-4EC6-AD6F-DD0EF38819C9",
"id": "3F2B1E1C-C886-4EC6-AD6F-DD0EF38819C9",
"resourceName": "LRS Data Stored",
"name": "LRS Data Stored",
"totalCost": 0.000071,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "AzureResourceMonthlyUsageRecord"
}
}
],
"links": {
"self": {
"uri": "/customers/fd442951-aef5-463c-8767-b21df61ee1f2/subscriptions/18441852-b6e0-4a18-b42f-57f808ac3e5e/usagerecords/resources",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
5. UsageRecordsAzure
Como llamar esta función:
userPartnerOperations.usage.usageRecords()
Ejemplo de respuesta:
{
"totalCount": 3,
"items": [
{
"budget": {
"amount": 200,
"usageSpendingBudget": 200,
"attributes": {
"objectType": "SpendingBudget"
}
},
"customerSpendingBudget": {
"amount": 200,
"usageSpendingBudget": 200,
"attributes": {
"objectType": "SpendingBudget"
}
},
"percentUsed": 28.66681,
"isUpgraded": false,
"resourceId": "91dc87b2-7c82-460d-90cb-c29fae973f17",
"id": "91dc87b2-7c82-460d-90cb-c29fae973f17",
"resourceName": "RAMIREZ VALLE MATRIZ SC",
"name": "RAMIREZ VALLE MATRIZ SC",
"totalCost": 57.33362,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "CustomerMonthlyUsageRecord"
}
},
{
"budget": {
"attributes": {
"objectType": "SpendingBudget"
}
},
"customerSpendingBudget": {
"attributes": {
"objectType": "SpendingBudget"
}
},
"percentUsed": 0,
"isUpgraded": false,
"resourceId": "d1eb2226-a0da-4062-9f29-61be3cffd910",
"id": "d1eb2226-a0da-4062-9f29-61be3cffd910",
"resourceName": "Antar Global Services S A de C V",
"name": "Antar Global Services S A de C V",
"totalCost": 0.000288,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "CustomerMonthlyUsageRecord"
}
},
{
"budget": {
"amount": 1000,
"usageSpendingBudget": 1000,
"attributes": {
"objectType": "SpendingBudget"
}
},
"customerSpendingBudget": {
"amount": 1000,
"usageSpendingBudget": 1000,
"attributes": {
"objectType": "SpendingBudget"
}
},
"percentUsed": 102.3889401,
"isUpgraded": false,
"resourceId": "cb27b3b8-2d09-4ab3-9804-d05fed519ceb",
"id": "cb27b3b8-2d09-4ab3-9804-d05fed519ceb",
"resourceName": "OCEAN NETWORK EXPRESS MEXICO",
"name": "OCEAN NETWORK EXPRESS MEXICO",
"totalCost": 1023.889401,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-02-05T12:03:05.393+00:00",
"attributes": {
"objectType": "CustomerMonthlyUsageRecord"
}
}
],
"links": {
"self": {
"uri": "/customers/usagerecords",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
6. GetUsageRecordsByCustomer.
Como llamar esta función:
userPartnerOperations.customer.byId('customer_id').usage.getUsageRecordsByCustomer();
Ejemplo de respuesta:
{
"totalCount":3,
"items":
[
{
"status":"active",
"partnerOnRecord":"4847274",
"offerId":"MS-AZR-0145P",
"resourceId":"346D8DC1-067A-4416-BC03-18F558623178",
"id":"346D8DC1-067A-4416-BC03-18F558623178",
"resourceName":"sierranorte",
"name":"sierranorte",
"totalCost":666.807481,
"currencyLocale":"en-US",
"lastModifiedDate":"2020-01-28T12:06:58.937+00:00",
"attributes":{
"objectType":"SubscriptionMonthlyUsageRecord"
}
},
{
"status":"active",
"partnerOnRecord":"4847274",
"offerId":"MS-AZR-0145P",
"resourceId":"3FCC7AAD-45AA-45D9-BE1C-C8DEF0A97251",
"id":"3FCC7AAD-45AA-45D9-BE1C-C8DEF0A97251",
"resourceName":"promare",
"name":"promare",
"totalCost":512.546161,
"currencyLocale":"en-US",
"lastModifiedDate":"2020-01-28T12:06:58.937+00:00",
"attributes":{
"objectType":"SubscriptionMonthlyUsageRecord"
}
},
{
"status":"active",
"partnerOnRecord":"4847274",
"offerId":"MS-AZR-0145P",
"resourceId":"E4917F1E-A809-4CE2-9A4F-E4980E98997F",
"id":"E4917F1E-A809-4CE2-9A4F-E4980E98997F",
"resourceName":"fultra",
"name":"fultra",
"totalCost":0.000000,
"currencyLocale":"en-US",
"lastModifiedDate":"2020-01-23T00:07:35.59+00:00",
"attributes":{
"objectType":"SubscriptionMonthlyUsageRecord"
}
}
],
"links":{
"self":{
"uri":"/customers/f03d1b0e-7bde-48a4-a386-abbbf42d9a52/subscriptions/usagerecords/",
"method":"GET",
"headers":[]
}
},
"attributes":{
"objectType":"Collection"
}
}
7. GetMeterUsageRecordsBySubs
Como llamar esta función:
userPartnerOperations.customer.byId(customerId).subscriptions.byId(subscriptionId).usage.getMeterUsageRecordsBySubs();
Ejemplo de respuesta:
{
"totalCount": 3,
"items": [
{
"meterId": "0D239466-777A-4271-B703-5F9AE34743AA",
"meterName": "E8 v3/E8s v3",
"category": "Virtual Machines",
"subcategory": "Ev3/ESv3 Series Windows",
"quantityUsed": 304,
"unit": "1 Hour",
"resourceId": "0D239466-777A-4271-B703-5F9AE34743AA",
"resourceName": "E8 v3/E8s v3",
"totalCost": 251.1648,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-01-28T12:06:58.937+00:00",
"attributes": {
"objectType": "MeterUsageRecord"
}
},
{
"meterId": "10BFCC7B-397C-4216-AF83-8708FC2DFA1F",
"meterName": "S15 Disks",
"category": "Storage",
"subcategory": "Standard HDD Managed Disks",
"quantityUsed": 0.608832,
"unit": "1/Month",
"resourceId": "10BFCC7B-397C-4216-AF83-8708FC2DFA1F",
"resourceName": "S15 Disks",
"totalCost": 5.862322,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-01-28T12:06:58.937+00:00",
"attributes": {
"objectType": "MeterUsageRecord"
}
},
{
"meterId": "211E620C-EBCF-4DB5-A7FD-996ABEBE9546",
"meterName": "Write Operations",
"category": "Storage",
"subcategory": "General Block Blob",
"quantityUsed": 3.6239,
"unit": "10K",
"resourceId": "211E620C-EBCF-4DB5-A7FD-996ABEBE9546",
"resourceName": "Write Operations",
"totalCost": 0.001109,
"currencyLocale": "en-US",
"lastModifiedDate": "2020-01-28T12:06:58.937+00:00",
"attributes": {
"objectType": "MeterUsageRecord"
}
},
],
"links": {
"self": {
"uri": "/customers/f03d1b0e-7bde-48a4-a386-abbbf42d9a52/subscriptions/346D8DC1-067A-4416-BC03-18F558623178//meterusagerecords",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
8. GetResourceUsageRecordsBySubs
Como llamar esta función:
userPartnerOperations.customer.byId(customerId).subscriptions.byId(subscriptionId).usage.getResourceUsageRecordsBySubs()
Ejemplo de respuesta:
{
"totalCount": 3,
"items": [
{
"subscriptionId": "42aebd04-b134-30a7-9c32-00705a5cc72e",
"resourceUri": "/subscriptions/ade3dc7a-74bd-46b7-8951-1b8d9aa47a43/resourceGroups/EM_CloudBank/providers/Microsoft.Storage/storageAccounts/cloudbankcs",
"resourceType": "Microsoft.Storage",
"entitlementId": "ade3dc7a-74bd-46b7-8951-1b8d9aa47a43",
"entitlementName": "Microsoft Azure",
"resourceGroupName": "EM_CloudBank",
"name": "cloudbankcs",
"resourceName": "cloudbankcs",
"totalCost": 0.04,
"currencyCode": "USD",
"usdTotalCost": 0.04,
"lastModifiedDate": "2020-02-05T00:54:07.1166667+00:00",
"attributes": {
"objectType": "ResourceUsageRecord"
}
},
{
"subscriptionId": "42aebd04-b134-30a7-9c32-00705a5cc72e",
"resourceUri": "/subscriptions/ade3dc7a-74bd-46b7-8951-1b8d9aa47a43/resourceGroups/emoralescs/providers/Microsoft.Automation/automationAccounts/StrtStp-atm",
"resourceType": "Microsoft.Automation",
"entitlementId": "ade3dc7a-74bd-46b7-8951-1b8d9aa47a43",
"entitlementName": "Microsoft Azure",
"resourceGroupName": "emoralescs",
"name": "StrtStp-atm",
"resourceName": "StrtStp-atm",
"totalCost": 0,
"currencyCode": "USD",
"usdTotalCost": 0,
"lastModifiedDate": "2020-02-05T00:54:07.1166667+00:00",
"attributes": {
"objectType": "ResourceUsageRecord"
}
},
{
"subscriptionId": "42aebd04-b134-30a7-9c32-00705a5cc72e",
"resourceUri": "/subscriptions/ade3dc7a-74bd-46b7-8951-1b8d9aa47a43/resourceGroups/EMORALESCS/providers/Microsoft.Compute/disks/WS16-vm1_DataDisk_0",
"resourceType": "Microsoft.Compute",
"entitlementId": "ade3dc7a-74bd-46b7-8951-1b8d9aa47a43",
"entitlementName": "Microsoft Azure",
"resourceGroupName": "EMORALESCS",
"name": "WS16-vm1_DataDisk_0",
"resourceName": "WS16-vm1_DataDisk_0",
"totalCost": 0.58,
"currencyCode": "USD",
"usdTotalCost": 0.58,
"lastModifiedDate": "2020-02-05T00:54:07.1166667+00:00",
"attributes": {
"objectType": "ResourceUsageRecord"
}
}
],
"links": {
"self": {
"uri": "/customers/b0631ce6-abcc-48b3-a607-20bd8e577c99/subscriptions/42aebd04-b134-30a7-9c32-00705a5cc72e/resourceusagerecords",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
Products
1. Get a list of products (by country)
Parámetros: | Name | Type | Required | Description | |------------|--------|----------|----------------------------------------------------------------------| | country | string | Yes | The country/region ID. | | targetView | string | Yes | Identifies the target view of the catalog. The supported values are: | | | | | AzureReservations which includes all Azure reservation items. | | | | | AzureReservationsVM which includes all virtual machine (VM) | | | | | reservation items. | | | | | AzureReservationsSQL which includes all SQL reservation items | | | | | AzureReservationsCosmosDb which includes all Cosmos database | | | | | reservation items. | | | | | MicrosoftAzure which includes items for Microsoft Azure | | | | | subscriptions (MS-AZR-0145P) and Azure plans. | | | | | OnlineServices which includes all online service items (including| | | | | commercial marketplace products). | | | | | Software which includes all software items. | | | | | SoftwareSUSELinux which includes all software SUSE Linux items. | | | | | SoftwarePerpetual which includes all perpetual software items. | | | | | SoftwareSubscriptions which includes all software subscription. | | | | | items. | Cómo llamar a esta función.
userPartnerOperations.products.byCountryCode('MX').byTargetView('targetView').get();
Ejemplo de respuesta:
{
"totalCount": 19,
"items": [
{
"id": "DZH318Z0BQ3Q",
"title": "Virtual Machines DSv2 Series",
"description": "Dsv2-series instances are the latest generation of D-series instances that will carry more powerful CPUs which are on average about 35% faster than D-series instances, and carry the same memory and disk configurations as the D-series. Dsv2-series instances are based on the latest generation 2.4 GHz Intel Xeon® E5-2673 v3 (Haswell) processor, and with Intel Turbo Boost Technology 2.0 can go to 3.2 GHz.",
"productType": {
"id": "Azure",
"displayName": "Azure",
"subType": {
"id": "VirtualMachines",
"displayName": "VirtualMachines"
}
},
"isMicrosoftProduct": true,
"publisherName": "Microsoft",
"links": {
"skus": {
"uri": "/products/DZH318Z0BQ3Q/skus?country=US",
"method": "GET",
"headers": []
},
"self": {
"uri": "/products/DZH318Z0BQ3Q?country=US",
"method": "GET",
"headers": []
}
}
},
...
],
"links": {
"self": {
"uri": "/products?country=US&targetView=Azure",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
Upgrade Azure.
Como llamar esta función:
const body = {
"customerId":"101ab4f6-d96c-4902-866a-4fd31d89a181",
"productFamily":"azure",
};
userPartnerOperations.products.productUpgrade(body);
Ejemplo de respuesta:
{
"debugId":2,
"headers":{
"content-length":"0",
"location":"productUpgrades/5324c00d-67ff-477e-aff5-86484bf20deb/status",
"ms-correlationid":"606bbe34-b9f1-4709-bf17-59b42c7c6ea4",
"ms-requestid":"bcd618c2-c77e-4172-8728-3175a70ca7ff",
"x-locale":"en-US",
"request-context":"appId=cid-v1:03ce8ca8-8373-4021-8f25-d5dd45c7b12f",
"date":"Thu, 19 Mar 2020 20:57:56 GMT",
"connection":"close"
},
"statusCode":202
}
Elegibilidad de un producto.
Como llamar esta función:
const body = {
"customerId":"101ab4f6-d96c-4902-866a-4fd31d89a181",
"productFamily":"azure",
};
userPartnerOperations.products.productUpgradeEligibility(body);
Ejemplo de respuesta:
{
"debugId":2,
"headers":{
"content-length":"98",
"content-type":"application/json; charset=utf-8",
"ms-correlationid":"02408040-a9ef-4f49-a201-e2b9ea805bc7",
"ms-requestid":"29095590-e702-441b-8add-ed19fe40c012",
"x-locale":"en-US",
"request-context":"appId=cid-v1:03ce8ca8-8373-4021-8f25-d5dd45c7b12f",
"date":"Thu, 19 Mar 2020 22:01:00 GMT",
"connection":"close"
},
"statusCode":200,
"body":
{
"customerId":"8baf0911-69cd-4f7c-b899-cbf9f2f49ac9",
"isEligible":true,
"productFamily":"azure"
}
}
Estatus de un upgrade.
Para poder correr esta ruta, se debió guardar el dato 'location' de la respuesta de la ruta productUpgrade, el cual tiene el id del upgrade solicitado.
{
"debugId":2,
"headers":{
"content-length":"0",
`"location":"productUpgrades/5324c00d-67ff-477e-aff5-86484bf20deb/status",`
"ms-correlationid":"606bbe34-b9f1-4709-bf17-59b42c7c6ea4",
"ms-requestid":"bcd618c2-c77e-4172-8728-3175a70ca7ff",
"x-locale":"en-US",
"request-context":"appId=cid-v1:03ce8ca8-8373-4021-8f25-d5dd45c7b12f",
"date":"Thu, 19 Mar 2020 20:57:56 GMT",
"connection":"close"
},
"statusCode":202
}
Como llamar esta función:
const body = {
"customerId":"101ab4f6-d96c-4902-866a-4fd31d89a181",
"productFamily":"azure",
};
const upgradeId = '5324c00d-67ff-477e-aff5-86484bf20deb';
userPartnerOperations.products.productUpgradeStatus(body, upgradeId);
Ejemplo de respuesta:
{
"debugId":2,
"headers":{
"content-length":"355",
"content-type":"application/json; charset=utf-8",
"ms-correlationid":"08227cf0-34d6-49c2-ad4a-a276139ffee7",
"ms-requestid":"49b1eb3a-4d71-4e9e-a656-eb7b39a6a7ee",
"x-locale":"en-US",
"request-context":"appId=cid-v1:03ce8ca8-8373-4021-8f25-d5dd45c7b12f",
"date":"Thu, 19 Mar 2020 21:22:18 GMT",
"connection":"close"
},
"statusCode":200,
body:"
{
"id":"5324c00d-67ff-477e-aff5-86484bf20deb",
"status":"Completed",
"productFamily":"Azure",
"lineItems":[
{
"sourceProduct":{
"id":"F7576574-52BD-4B2A-A2ED-139A7B87F8F1",
"name":"Microsoft Azure"
},
"targetProduct":{
"id":"8e363daa-172f-5aed-f7ff-968a8f09f82d",
"name":"Microsoft Azure Plan"
},
"upgradedDate":"2020-03-19T21:05:48.4704556Z",
"status":"Completed"
}
]
}"
}
Budget
1. Update customer usage spending budget.
Como llamar esta función:
const budget = {
"Amount": 1000,
"Attributes": {
"ObjectType": "SpendingBudget"
}
};
userPartnerOperations.customer.byId('customerId').budget.update(budget);
Ejemplo de respuesta:
{
{
"amount": 100,
"usageSpendingBudget": 100,
"attributes":{
"objectType":"SpendingBudget"
}
},
"links":{
"self":{
"uri":"/v1/customers/<customer-tenant-id>/usagebudget",
"method":"PATCH",
"headers":[]
}
}
}
2. Get a customer´s usage spending budget.
Como llamar esta función:
userPartnerOperations.customer.byId('customerId').budget.get();
Ejemplo de respuesta:
{
{
"amount": 100,
"usageSpendingBudget": 100,
"attributes":{
"objectType":"SpendingBudget"
}
}
}
Invoices
Obtener todos los invoices
Como llamar esta función:
userPartnerOperations.invoices.get();
Ejemplo de respuesta:
{
"totalCount": 2,
"items": [
{
"id": "D02005YFHI",
"invoiceDate": "2017-01-21T00:00:00Z",
"totalCharges": 24606.35,
"paidAmount": 1000,
"currencyCode": "GBP",
"currencySymbol": "£",
"pdfDownloadLink": "/invoices/D02005YFHI/documents/statement",
"taxReceipts": [
{
"id": "123456",
"taxReceiptPdfDownloadLink": "/invoices/D02005YFHI/receipts/123456/documents/statement"
}
],
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "office",
"links": {
"self": {
"uri": "/invoices/Recurring-D02005YFHI/lineitems/Office/BillingLineItems",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"documentType": "invoice",
"invoiceType": "Recurring",
"links": {
"self": {
"uri": "/invoices/Recurring-D02005YFHI",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Invoice"
}
},
{
"id": "G000024130",
"invoiceDate": "2018-02-08T01:22:47.603895Z",
"totalCharges": 586366,
"paidAmount": 0,
"currencyCode": "CHF",
"currencySymbol": "CHF",
"pdfDownloadLink": "/invoices/G000024130/documents/statement",
"taxReceipts": [
{
"id": "234567",
"taxReceiptPdfDownloadLink": "/invoices/G000024130/receipts/234567/documents/statement"
}
],
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "one_time",
"links": {
"self": {
"uri": "/invoices/OneTime-G000024130/lineitems/OneTime/BillingLineItems",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"amendments": [
{
"id": "G000024131",
"invoiceDate": "2018-02-08T18:44:37.5381456Z",
"totalCharges": 107661.12,
"paidAmount": 0,
"currencyCode": "CHF",
"currencySymbol": "CHF",
"invoiceDetails": [
{
"invoiceLineItemType": "billing_line_items",
"billingProvider": "one_time",
"attributes": {
"objectType": "InvoiceDetail"
}
}
],
"documentType": "adjustment_note",
"amendsOf": "G000024130",
"invoiceType": "OneTime",
"attributes": {
"objectType": "Invoice"
}
}
],
"documentType": "void_note",
"invoiceType": "OneTime",
"links": {
"self": {
"uri": "/invoices/OneTime-G000024130",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Invoice"
}
}
],
"links": {
"self": {
"uri": "/invoices?size=2&offset=0",
"method": "GET",
"headers": []
},
"next": {
"uri": "/invoices?size=2&offset=2",
"method": "GET",
"headers": []
}
},
"attributes": {
"objectType": "Collection"
}
}
Obtener los invoices por size u offset o ambos.
Como llamar estas funciones:
* Por offset:
userPartnerOperations.invoices.byOffset('0').get();
* Por size:
userPartnerOperations.invoices.bysSize('1').get();
* Por ambas:
userPartnerOperations.invoices.bySize('1').byOffset('0').get();
Ejemplo de respuesta, identico al punto anterior.