Skip to content

Commit d0f244f

Browse files
authored
arm-templatespecs-track1 (Azure#17114)
1 parent 88b7959 commit d0f244f

17 files changed

+2529
-1
lines changed

eng/pipelines/mgmt-ci.yml

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,8 @@ trigger:
198198
- sdk/servicefabric/servicefabric
199199
- sdk/storage/storage-datalake
200200
- sdk/storage/storage-internal-avro
201-
- resources-subscriptions/arm-resources-subscriptions
201+
- sdk/resources-subscriptions/arm-resources-subscriptions
202+
- sdk/templatespecs/arm-templatespecs
202203

203204
pr: none
204205

eng/pipelines/mgmt-pr.yml

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -204,6 +204,7 @@ pr:
204204
- sdk/storage/storage-datalake
205205
- sdk/storage/storage-internal-avro
206206
- sdk/resources-subscriptions/arm-resources-subscriptions
207+
- sdk/templatespecs/arm-templatespecs
207208

208209
variables:
209210
NodeVersion: 10.x
Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,21 @@
1+
The MIT License (MIT)
2+
3+
Copyright (c) 2021 Microsoft
4+
5+
Permission is hereby granted, free of charge, to any person obtaining a copy
6+
of this software and associated documentation files (the "Software"), to deal
7+
in the Software without restriction, including without limitation the rights
8+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
copies of the Software, and to permit persons to whom the Software is
10+
furnished to do so, subject to the following conditions:
11+
12+
The above copyright notice and this permission notice shall be included in all
13+
copies or substantial portions of the Software.
14+
15+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
SOFTWARE.
Lines changed: 112 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,112 @@
1+
## Azure TemplateSpecsClient SDK for JavaScript
2+
3+
This package contains an isomorphic SDK (runs both in node.js and in browsers) for TemplateSpecsClient.
4+
5+
### Currently supported environments
6+
7+
- [LTS versions of Node.js](https://nodejs.org/about/releases/)
8+
- Latest versions of Safari, Chrome, Edge and Firefox.
9+
10+
### Prerequisites
11+
12+
You must have an [Azure subscription](https://azure.microsoft.com/free/).
13+
14+
### How to install
15+
16+
To use this SDK in your project, you will need to install two packages.
17+
- `@azure/arm-templatespecs` that contains the client.
18+
- `@azure/identity` that provides different mechanisms for the client to authenticate your requests using Azure Active Directory.
19+
20+
Install both packages using the below command:
21+
```bash
22+
npm install --save @azure/arm-templatespecs @azure/identity
23+
```
24+
> **Note**: You may have used either `@azure/ms-rest-nodeauth` or `@azure/ms-rest-browserauth` in the past. These packages are in maintenance mode receiving critical bug fixes, but no new features.
25+
If you are on a [Node.js that has LTS status](https://nodejs.org/about/releases/), or are writing a client side browser application, we strongly encourage you to upgrade to `@azure/identity` which uses the latest versions of Azure Active Directory and MSAL APIs and provides more authentication options.
26+
27+
### How to use
28+
29+
- If you are writing a client side browser application,
30+
- Follow the instructions in the section on Authenticating client side browser applications in [Azure Identity examples](https://aka.ms/azsdk/js/identity/examples) to register your application in the Microsoft identity platform and set the right permissions.
31+
- Copy the client ID and tenant ID from the Overview section of your app registration in Azure portal and use it in the browser sample below.
32+
- If you are writing a server side application,
33+
- [Select a credential from `@azure/identity` based on the authentication method of your choice](https://aka.ms/azsdk/js/identity/examples)
34+
- Complete the set up steps required by the credential if any.
35+
- Use the credential you picked in the place of `DefaultAzureCredential` in the Node.js sample below.
36+
37+
In the below samples, we pass the credential and the Azure subscription id to instantiate the client.
38+
Once the client is created, explore the operations on it either in your favorite editor or in our [API reference documentation](https://docs.microsoft.com/javascript/api) to get started.
39+
#### nodejs - Authentication, client creation, and get templateSpecs as an example written in JavaScript.
40+
41+
##### Sample code
42+
43+
```javascript
44+
const { DefaultAzureCredential } = require("@azure/identity");
45+
const { TemplateSpecsClient } = require("@azure/arm-templatespecs");
46+
const subscriptionId = process.env["AZURE_SUBSCRIPTION_ID"];
47+
48+
// Use `DefaultAzureCredential` or any other credential of your choice based on https://aka.ms/azsdk/js/identity/examples
49+
// Please note that you can also use credentials from the `@azure/ms-rest-nodeauth` package instead.
50+
const creds = new DefaultAzureCredential();
51+
const client = new TemplateSpecsClient(creds, subscriptionId);
52+
const resourceGroupName = "testresourceGroupName";
53+
const templateSpecName = "testtemplateSpecName";
54+
const expand = "versions";
55+
client.templateSpecs.get(resourceGroupName, templateSpecName, expand).then((result) => {
56+
console.log("The result is:");
57+
console.log(result);
58+
}).catch((err) => {
59+
console.log("An error occurred:");
60+
console.error(err);
61+
});
62+
```
63+
64+
#### browser - Authentication, client creation, and get templateSpecs as an example written in JavaScript.
65+
66+
In browser applications, we recommend using the `InteractiveBrowserCredential` that interactively authenticates using the default system browser.
67+
- See [Single-page application: App registration guide](https://docs.microsoft.com/azure/active-directory/develop/scenario-spa-app-registration) to configure your app registration for the browser.
68+
- Note down the client Id from the previous step and use it in the browser sample below.
69+
70+
##### Sample code
71+
72+
- index.html
73+
74+
```html
75+
<!DOCTYPE html>
76+
<html lang="en">
77+
<head>
78+
<title>@azure/arm-templatespecs sample</title>
79+
<script src="node_modules/@azure/ms-rest-azure-js/dist/msRestAzure.js"></script>
80+
<script src="node_modules/@azure/identity/dist/index.js"></script>
81+
<script src="node_modules/@azure/arm-templatespecs/dist/arm-templatespecs.js"></script>
82+
<script type="text/javascript">
83+
const subscriptionId = "<Subscription_Id>";
84+
// Create credentials using the `@azure/identity` package.
85+
// Please note that you can also use credentials from the `@azure/ms-rest-browserauth` package instead.
86+
const credential = new InteractiveBrowserCredential(
87+
{
88+
clientId: "<client id for your Azure AD app>",
89+
tenant: "<optional tenant for your organization>"
90+
});
91+
const client = new Azure.ArmTemplatespecs.TemplateSpecsClient(creds, subscriptionId);
92+
const resourceGroupName = "testresourceGroupName";
93+
const templateSpecName = "testtemplateSpecName";
94+
const expand = "versions";
95+
client.templateSpecs.get(resourceGroupName, templateSpecName, expand).then((result) => {
96+
console.log("The result is:");
97+
console.log(result);
98+
}).catch((err) => {
99+
console.log("An error occurred:");
100+
console.error(err);
101+
});
102+
</script>
103+
</head>
104+
<body></body>
105+
</html>
106+
```
107+
108+
## Related projects
109+
110+
- [Microsoft Azure SDK for Javascript](https://github.com/Azure/azure-sdk-for-js)
111+
112+
![Impressions](https://azure-sdk-impressions.azurewebsites.net/api/impressions/azure-sdk-for-js/sdk/templatespecs/arm-templatespecs/README.png)
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
{
2+
"name": "@azure/arm-templatespecs",
3+
"author": "Microsoft Corporation",
4+
"description": "TemplateSpecsClient Library with typescript type definitions for node.js and browser.",
5+
"version": "1.0.0",
6+
"dependencies": {
7+
"@azure/ms-rest-azure-js": "^2.1.0",
8+
"@azure/ms-rest-js": "^2.2.0",
9+
"@azure/core-auth": "^1.1.4",
10+
"tslib": "^1.10.0"
11+
},
12+
"keywords": [
13+
"node",
14+
"azure",
15+
"typescript",
16+
"browser",
17+
"isomorphic"
18+
],
19+
"license": "MIT",
20+
"main": "./dist/arm-templatespecs.js",
21+
"module": "./esm/templateSpecsClient.js",
22+
"types": "./esm/templateSpecsClient.d.ts",
23+
"devDependencies": {
24+
"typescript": "^3.6.0",
25+
"rollup": "^1.18.0",
26+
"rollup-plugin-node-resolve": "^5.2.0",
27+
"rollup-plugin-sourcemaps": "^0.4.2",
28+
"uglify-js": "^3.6.0"
29+
},
30+
"homepage": "https://github.com/Azure/azure-sdk-for-js/tree/master/sdk/templatespecs/arm-templatespecs",
31+
"repository": {
32+
"type": "git",
33+
"url": "https://github.com/Azure/azure-sdk-for-js.git"
34+
},
35+
"bugs": {
36+
"url": "https://github.com/Azure/azure-sdk-for-js/issues"
37+
},
38+
"files": [
39+
"dist/**/*.js",
40+
"dist/**/*.js.map",
41+
"dist/**/*.d.ts",
42+
"dist/**/*.d.ts.map",
43+
"esm/**/*.js",
44+
"esm/**/*.js.map",
45+
"esm/**/*.d.ts",
46+
"esm/**/*.d.ts.map",
47+
"src/**/*.ts",
48+
"README.md",
49+
"rollup.config.js",
50+
"tsconfig.json"
51+
],
52+
"scripts": {
53+
"build": "tsc && rollup -c rollup.config.js && npm run minify",
54+
"minify": "uglifyjs -c -m --comments --source-map \"content='./dist/arm-templatespecs.js.map'\" -o ./dist/arm-templatespecs.min.js ./dist/arm-templatespecs.js",
55+
"prepack": "npm install && npm run build"
56+
},
57+
"sideEffects": false,
58+
"autoPublish": true
59+
}
Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,37 @@
1+
import rollup from "rollup";
2+
import nodeResolve from "rollup-plugin-node-resolve";
3+
import sourcemaps from "rollup-plugin-sourcemaps";
4+
5+
/**
6+
* @type {rollup.RollupFileOptions}
7+
*/
8+
const config = {
9+
input: "./esm/templateSpecsClient.js",
10+
external: [
11+
"@azure/ms-rest-js",
12+
"@azure/ms-rest-azure-js"
13+
],
14+
output: {
15+
file: "./dist/arm-templatespecs.js",
16+
format: "umd",
17+
name: "Azure.ArmTemplatespecs",
18+
sourcemap: true,
19+
globals: {
20+
"@azure/ms-rest-js": "msRest",
21+
"@azure/ms-rest-azure-js": "msRestAzure"
22+
},
23+
banner: `/*
24+
* Copyright (c) Microsoft Corporation.
25+
* Licensed under the MIT License.
26+
*
27+
* Code generated by Microsoft (R) AutoRest Code Generator.
28+
* Changes may cause incorrect behavior and will be lost if the code is regenerated.
29+
*/`
30+
},
31+
plugins: [
32+
nodeResolve({ mainFields: ['module', 'main'] }),
33+
sourcemaps()
34+
]
35+
};
36+
37+
export default config;

0 commit comments

Comments
 (0)