0.2.4 • Published 10 months ago

@compusoluciones/microsoft-sdk v0.2.4

Weekly downloads
1
License
ISC
Repository
-
Last release
10 months ago

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.


0.2.4

10 months ago

0.2.3

2 years ago

0.2.2

2 years ago

0.2.1

2 years ago

0.2.0

3 years ago

0.1.9

4 years ago

0.1.8

4 years ago

0.1.7

4 years ago

0.1.6

5 years ago

0.1.5

6 years ago