diff --git a/tools/apiview/parsers/CONTRIBUTING.md b/tools/apiview/parsers/CONTRIBUTING.md index 1441cbd6a15..d63acb4de86 100644 --- a/tools/apiview/parsers/CONTRIBUTING.md +++ b/tools/apiview/parsers/CONTRIBUTING.md @@ -1,1165 +1,44 @@ -# Tree token parser +# APIView token parsers This page describes how to contribute to [APIView](../../../src//dotnet/APIView/APIViewWeb/APIViewWeb.csproj) language level parsers. -Specifically how to create or update a language parser to produce a hierarchy of the API using a tree data tokens, instead of a flat token list. +Specifically how to create or update a language parser to produce a hierarchy of the API using tokens with context, instead of a flat token list. -## Tree style token parser benefits +## Benefits of token schema with parent - child context -- Ability to granularly identify a specific class and it’s methods or a specific API alone within a large review without rendering entire tokens. +- Ability to granularly identify a specific node and it's sub nodes. For e.g. if a review line for a class is available then all it's child nodes contain all methods and properties within that class. - Faster diffing using tree shaker instead of current text based comparison. - Provide diffing with context of where the line that changed belong to in the tree, instead of showing the 5 lines before and after the change. - Provide cross language view for a granular section within an API review. -- Support for collapsible views at each class and namespace level to make it easier to review the change. User will be able to expand/collapse an entire class or a namespace and it’s children. -- Support dynamic representation of APIs for e.g. some users prefer to see all method arguments in same line and some users prefer to see them in multiple lines. - Less data to be stored in token file which are located in azure storage blob. ## Key concepts -Previously APIview tokens were created as a flat list assigned to the `CodeFileToken[] Tokens` property of the [CodeFile](../../../src/dotnet/APIView/APIView/Model/CodeFile.cs). Then the page navigation is created and assigned to `NavigationItem[] Navigation`. For tree style tokens these two properties are no longer required, instead a `List APIForest` property will be used to capture the generated tree of tokens. +APIView token schema is available in [TypeSpec](./apiview-treestyle-parser-schema/model.tsp) and [JSON](./apiview-treestyle-parser-schema/model.json). Language parsers needs to create a `CodeFile` object as per the schema. +`CodeFile` object contains metadata about the package and an array of `ReviewLine` objects. Each object of `ReviewLine` in `CodeFile` object is a top-level line to be listed. For e.g. Top-level lines are mostly namespace or module level nodes. +Each `ReviewLine` object has children of `ReviewLine` to include sub nodes that needs to be listed in a review. -![APITree](images/APITree.svg) +A sample token file is present [here](./apiview-treestyle-parser-schema/sample/Azure.Template_token.json). -- Each module of the API (namespace, class, methods) should be its own node. Members of a module (methods in a class), (classes in a namespace) should be added as child nodes of its parent module. -- Each tree node has top tokens which should be used to capture the main tokens on the node, these can span multiple lines. -- Module name, decorators, and parameters should be modeled as `TopTokens`. -- If the language requires it use the bottom tokens to capture tokens that closes out the node, this is usually just the closing bracket and/or empty lines. +APIView generates a navigation tree based on the information in the tokens. A token is included in the navigation tree if `NavigatonDisplayName` is set in `ReviewToken` and `LineId` is set in `ReviewLine` object that contains the `ReviewToken` -### Object Definitions - -- Here are the models needed - - ``` - object APITreeNode - string Name (Required) - string Id (Required) - string Kind (Required) - Set Tags - Dictionary Properties - List TopTokens - List BottomTokens - List Children - - object StructuredToken - string Value - string Id - StructuredTokenKind Kind (Required) - Set Tags - Dictionary Properties - Set RenderClasses - - enum StructuredTokenKind - Content - LineBreak - NonBreakingSpace - TabSpace - ParameterSeparator - ``` - -### [APITreeNode](../../../src/dotnet/APIView/APIView/Model/TokenTreeModel.cs) -- Ensure each node has an Id and Kind. The combination of `Id`, `Kind`, and `SubKind` should make the node unique across all nodes in the tree. For example a class and a method can potentially have the same Id, but the kind should differentiate them from each other. -- Sort each node at each level of the tree by your desired property, this is to ensure that difference in node order does not result in diff. - -### [StructuredToken](../../../src/dotnet/APIView/APIView/Model/StructuredTokenModel.cs) - -- Assign the final parsed value to a `List APIForest` property of the `CodeFile` ## Serialization -Serialize the generated code file to JSON with Gzip compression. The output file should have `.json.tgz` extension. Try to make the json as small as possible by ignoring null values and empty collections. -Don't worry about indentation that will be handled by the tree structure. In the case you want to have indentation between the tokens then use `TabSpace` token kind. +Serialize the generated code file to JSON. The output file should have `.json` extension. Try to make the json as small as possible by ignoring null values and empty collections. +Don't worry about indentation as it will be handled by the tree structure based on the parent-child relationship among `ReviewLine` objects. ## Examples -### APITreeNode and StructuredToken - -Example showing a full node with all its children and tokens. - -![Navigation](images/apitree-node-and-tokens.png) - - - -
-click to expand json - - ```json - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo", - "Kind": "Type", - "Name": "BlobContainerInfo", - "BottomTokens": [ - { - "Kind": 0, - "Value": "}", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "" - } - ], - "Children": [ - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo.ETag", - "Kind": "Member", - "Name": "Azure.Storage.Blobs.Models.BlobContainerInfo.ETag", - "Properties": { - "SubKind": "Property" - }, - "Tags": [ - "HideFromNav" - ], - "TopTokens": [ - { - "Kind": 0, - "Value": "// \u003Csummary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// The ETag contains a value that you can use to perform operations conditionally. If the request version is 2011-08-18 or newer, the ETag value will be in quotes.", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// \u003C/summary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo.ETag", - "Kind": 0, - "Value": "" - }, - { - "Kind": 0, - "Value": "public", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "ETag", - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "ETag", - "RenderClasses": [ - "mname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "{", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "get", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 0, - "Value": ";", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "}", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 1, - "Value": "" - } - ] - }, - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo.LastModified", - "Kind": "Member", - "Name": "Azure.Storage.Blobs.Models.BlobContainerInfo.LastModified", - "Properties": { - "SubKind": "Property" - }, - "Tags": [ - "HideFromNav" - ], - "TopTokens": [ - { - "Kind": 0, - "Value": "// \u003Csummary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// Returns the date and time the container was last modified. Any operation that modifies the blob, including an update of the blob\u0027s metadata or properties, changes the last-modified time of the blob.", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// \u003C/summary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo.LastModified", - "Kind": 0, - "Value": "" - }, - { - "Kind": 0, - "Value": "public", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "DateTimeOffset", - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "LastModified", - "RenderClasses": [ - "mname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "{", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "get", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 0, - "Value": ";", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "}", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 1, - "Value": "" - } - ] - } - ], - "Properties": { - "SubKind": "class" - }, - "TopTokens": [ - { - "Kind": 0, - "Value": "// \u003Csummary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// BlobContainerInfo", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// \u003C/summary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "public", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "class", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo", - "Kind": 0, - "Value": "" - }, - { - "Id": "Azure.Storage.Blobs.Models.BlobContainerInfo", - "Kind": 0, - "Value": "BlobContainerInfo", - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "{", - "RenderClasses": [ - "punc" - ] - } - ] -} - ``` -
- -### Navigation -![Navigation](images/navigation.png) - -Ensure you set appropriate `Name` for the token node. And also set a value for the `Kind`. You can use one of the following values `assembly`, `class`, `delegate`, `enum`, `interface`, `method` , `namespace`, `package`, `struct`, `type` to get the default navigation icon. You can also use values more appropriate for your language then reach out to APIView to provide support for those. Use tag `HideFromNav` to exclude a node from showing up in the page navigation. -
-click to expand json - - ```json - { - "Id": "Azure.Storage.Blobs.Models", - "Kind": "Namespace", - "Name": "Azure.Storage.Blobs.Models", - "Children": [ - { - "Id": "Azure.Storage.Blobs.Models.AccessTier", - "Kind": "Type", - "Name": "AccessTier", - "TopTokens": [], - "BottomTokens": [], - "Children": [ - { - "Id": "Azure.Storage.Blobs.Models.AccessTier.AccessTier(System.String)", - "Kind": "Member", - "Name": "Azure.Storage.Blobs.Models.AccessTier.AccessTier(string)", - "TopTokens": [], - "BottomTokens": [], - "Properties": { - "SubKind": "Method" - }, - "Tags": [ - "HideFromNav" - ] - } - ], - "Properties": { - "SubKind": "struct" - } - }, - { - "Id": "Azure.Storage.Blobs.Models.AccountInfo", - "Kind": "Type", - "Name": "AccountInfo" - } - ] - } - ``` -
- -### Documentation -![Navigation](images/documentation.png) - -You can group a sequence of similar type tokens using GroupId. Set `GroupId` property to `doc` to mark a sequence of comment tokens as documentation. -
-click to expand json - - ```json - { - "Id": "Azure.Storage.Blobs.BlobClient.BlobClient()", - "Kind": "Member", - "Name": "Azure.Storage.Blobs.BlobClient.BlobClient()", - "Properties": { - "SubKind": "Method" - }, - "Tags": [ - "HideFromNav" - ], - "TopTokens": [ - { - "Kind": 0, - "Value": "// \u003Csummary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// Initializes a new instance of the \u003Csee cref=\u0022T:Azure.Storage.Blobs.BlobClient\u0022 /\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// class for mocking.", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - }, - { - "Kind": 1, - "Value": "" - }, - { - "Kind": 0, - "Value": "// \u003C/summary\u003E", - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ] - } - ] - } - ``` -
- -### Deprecated Node -![Navigation](images/deprecated-node.png) - -Add `Deprecated` tag to a node to mark all the token of the node as deprecated. -
-click to expand json - - ```json - { - "Name": "Azure.Template.Models.SecretBundle.ContentType", - "Id": "Azure.Template.Models.SecretBundle.ContentType", - "Kind": "Member", - "Tags": [ - "HideFromNav", - "Deprecated" - ], - "Properties": { - "SubKind": "Property" - }, - "TopTokens": [ - { - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ], - "Value": "// \u003Csummary\u003E The content type of the secret. \u003C/summary\u003E", - "Kind": 0 - }, - { - "Value": "", - "Kind": 1 - }, - { - "Value": "", - "Id": "Azure.Template.Models.SecretBundle.ContentType", - "Kind": 0 - }, - { - "RenderClasses": [ - "keyword" - ], - "Value": "public", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "RenderClasses": [ - "keyword" - ], - "Value": "string", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "RenderClasses": [ - "mname" - ], - "Value": "ContentType", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "RenderClasses": [ - "punc" - ], - "Value": "{", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "RenderClasses": [ - "keyword" - ], - "Value": "get", - "Kind": 0 - }, - { - "RenderClasses": [ - "punc" - ], - "Value": ";", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "RenderClasses": [ - "punc" - ], - "Value": "}", - "Kind": 0 - }, - { - "Value": "", - "Kind": 1 - } - ] -}, - ``` -
- -### Deprecated Token -![Navigation](images/deprecated-token.png) - -Add `Deprecated` tag to a token to mark the token as deprecated. -
-click to expand json - - ```json - { - "Tags": [ - "Deprecated" - ], - "RenderClasses": [ - "text" - ], - "Value": "cancellationToken", - "Kind": 0 - } - ``` -
- -### Hidden API -![Navigation](images/hidden-api.png) - -Add `Hidden` tag to a node to mark the node as hidden. Hidden nodes show up with low contrast in APIView. Hidden node visibility can also be toggled on or off in page settings. -
-click to expand json - - ```json - { - "Id": "Azure.Storage.Blobs.BlobServiceClient.UndeleteBlobContainer(System.String, System.String, System.String, System.Threading.CancellationToken)", - "Kind": "Member", - "Name": "Azure.Storage.Blobs.BlobServiceClient.UndeleteBlobContainer(string, string, string, System.Threading.CancellationToken)", - "Properties": { - "SubKind": "Method" - }, - "Tags": [ - "HideFromNav", - "Hidden" - ], - "TopTokens": [ - { - "Id": "Azure.Storage.Blobs.BlobServiceClient.UndeleteBlobContainer(System.String, System.String, System.String, System.Threading.CancellationToken)", - "Kind": 0, - "Value": "" - }, - { - "Kind": 0, - "Value": "public", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "virtual", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "Response", - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 0, - "Value": "\u003C", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 0, - "Value": "BlobContainerClient", - "Properties": { - "NavigateToId": "Azure.Storage.Blobs.BlobContainerClient" - }, - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 0, - "Value": "\u003E", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "UndeleteBlobContainer", - "RenderClasses": [ - "mname" - ] - }, - { - "Kind": 0, - "Value": "(", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "deletedContainerName", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ",", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 4, - "Value": "" - }, - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "deletedContainerVersion", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ",", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 4, - "Value": "" - }, - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "destinationContainerName", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ",", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 4, - "Value": "" - }, - { - "Kind": 0, - "Value": "CancellationToken", - "RenderClasses": [ - "tname" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "cancellationToken", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "=", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "default", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 0, - "Value": ")", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 0, - "Value": ";", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 1, - "Value": "" - } - ] -} - ``` -
- - - -### Parameter Separator -Use token with kind Kind `ParameterSeparator` between method parameters to allow APIView to either render the methods parameters on the same line or on separate lines based on language or user preference. - -![Navigation](images/parameter-separator-with-single-space.png) - -![Navigation](images/parameter-separator-with-line-break.png) - - -
-click to expand json - - ```json - [ - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "connectionString", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ",", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 4, - "Value": "" - }, - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "blobContainerName", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ",", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 4, - "Value": "" - }, - { - "Kind": 0, - "Value": "string", - "RenderClasses": [ - "keyword" - ] - }, - { - "Kind": 2, - "Value": "" - }, - { - "Kind": 0, - "Value": "blobName", - "RenderClasses": [ - "text" - ] - }, - { - "Kind": 0, - "Value": ")", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 0, - "Value": ";", - "RenderClasses": [ - "punc" - ] - }, - { - "Kind": 1, - "Value": "" - } - ] - ``` -
- -### Navigation Token +A sample token file for .NET package `Azure.Template` is present [here](./apiview-treestyle-parser-schema/sample/Azure.Template_token.json) and corresponding rendered text representation is available [here](./apiview-treestyle-parser-schema/sample/Azure.Template_review_content.txt). -Make a token a navigation token by adding key `NavigateToId` to the token property with a value corresponding the the Id of the APINode to navigate to on click. -
-click to expand json - ```json - { - "Kind": 0, - "Value": "BlobClientOptions", - "Properties": { - "NavigateToId": "Azure.Storage.Blobs.BlobClientOptions" - }, - "RenderClasses": [ - "tname" - ] - } - ``` -
+## JSON token validation -### URL Token -![Navigation](images/url-token.png) +You can validate JSON tokens against required JSON schema using [JSON schema validator](https://www.jsonschemavalidator.net/). -Make a token a Url by adding key `NavigateToUrl` to the token property and setting the value to the target Url. -
-click to expand json +- Select `Custom` as schema type and copy and paste the contents in [json schema](./apiview-treestyle-parser-schema/model.json) to left panel. +- Generate APIView token file and paste generated JSON content onto right side panel to validate. - ```json - [ - { - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ], - "Value": "// This", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "Properties": { - "GroupId": "doc", - "NavigateToUrl": "https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/ProtocolMethods.md" - }, - "RenderClasses": [ - "comment" - ], - "Value": "protocol method", - "Kind": 0 - }, - { - "Value": "", - "Kind": 2 - }, - { - "Properties": { - "GroupId": "doc" - }, - "RenderClasses": [ - "comment" - ], - "Value": "allows explicit creation of the request and processing of the response for advanced scenarios.", - "Kind": 0 - } - ] - ``` -
## Get help diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNode.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNode.json deleted file mode 100644 index 1a26a0410f0..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNode.json +++ /dev/null @@ -1,97 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "APITreeNode.json", - "type": "object", - "properties": { - "Name": { - "type": "string", - "description": "The name of the tree node which will be used as label for the API Navigation. Generally this is the name of the module (class, method)." - }, - "Id": { - "$ref": "APITreeNodeId.json", - "description": "Id of the node, which should be unique at the node level. i.e. unique among its siblings. This was previously represented by the DefinitionId for the main Token of the node." - }, - "Kind": { - "anyOf": [ - { - "type": "string", - "const": "assembly" - }, - { - "type": "string", - "const": "namespace" - }, - { - "type": "string", - "const": "class" - }, - { - "type": "string", - "const": "delegate" - }, - { - "type": "string", - "const": "enum" - }, - { - "type": "string", - "const": "interface" - }, - { - "type": "string", - "const": "method" - }, - { - "type": "string", - "const": "package" - }, - { - "type": "string", - "const": "struct" - }, - { - "type": "string", - "const": "type" - } - ], - "description": "Descriptor for the kind of the node. Currently used to select navigation icons" - }, - "TopTokens": { - "type": "array", - "items": { - "$ref": "StructuredToken.json" - }, - "description": "The main data of the node. This is all the tokens that actually define the node. When rendering, TopTokens are rendered first, followed by any Children, and then finally BottomTokens" - }, - "BottomTokens": { - "type": "array", - "items": { - "$ref": "StructuredToken.json" - }, - "description": "Tokens which are rendered after all child nodes. Depending on the language this would include the closing curly brace and/or empty lines." - }, - "Children": { - "type": "array", - "items": { - "$ref": "APITreeNode.json" - }, - "description": "The nodes immediate children. For a namespace this would be classes, for a class this would be the class constructors and methods. Children are rendered after TopTokens but before BottomTokens, and are automatically indented." - }, - "Properties": { - "$ref": "APITreeNodeProperties.json", - "description": "Properties of the APITreeNode." - }, - "Tags": { - "type": "array", - "items": { - "$ref": "APITreeNodeTags.json" - }, - "description": "Tags of the APITreeNode." - } - }, - "required": [ - "Name", - "Id", - "Kind" - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeId.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeId.json deleted file mode 100644 index 8bbd3dc0156..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeId.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "APITreeNodeId.json", - "type": "string" -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeProperties.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeProperties.json deleted file mode 100644 index 4e66c5e2f75..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeProperties.json +++ /dev/null @@ -1,15 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "APITreeNodeProperties.json", - "type": "object", - "properties": { - "IconName": { - "type": "string", - "description": "Use this only if you are looking to add a custom icon different from language wide defaults set by APITreeNode kind" - }, - "CrossLangDefId": { - "type": "string", - "description": "The cross language definitionId for the node." - } - } -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeTags.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeTags.json deleted file mode 100644 index 71eadfe22a6..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/APITreeNodeTags.json +++ /dev/null @@ -1,26 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "APITreeNodeTags.json", - "anyOf": [ - { - "type": "string", - "const": "Deprecated", - "description": "Mark a token as deprecated." - }, - { - "type": "string", - "const": "Hidden", - "description": "Mark a node as Hidden." - }, - { - "type": "string", - "const": "HideFromNav", - "description": "Indicate that a node should be hidden from the page navigation." - }, - { - "type": "string", - "const": "SkipDiff", - "description": "Indicate that a node should not be used in computation of diff." - } - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnostic.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnostic.json deleted file mode 100644 index b500b2c3b21..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnostic.json +++ /dev/null @@ -1,31 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "CodeDiagnostic.json", - "type": "object", - "properties": { - "DiagnosticId": { - "type": "string", - "description": "String associated with a given diagnostic usieally produced by an analyzer" - }, - "Text": { - "type": "string" - }, - "HelpLinkUri": { - "type": "string" - }, - "TargetId": { - "$ref": "APITreeNodeId.json", - "description": "Maps to the APITreeNode id" - }, - "Level": { - "$ref": "CodeDiagnosticLevel.json" - } - }, - "required": [ - "DiagnosticId", - "Text", - "HelpLinkUri", - "TargetId", - "Level" - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnosticLevel.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnosticLevel.json deleted file mode 100644 index 92cf68b5b51..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeDiagnosticLevel.json +++ /dev/null @@ -1,11 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "CodeDiagnosticLevel.json", - "type": "number", - "enum": [ - 1, - 2, - 3, - 4 - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeFile.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeFile.json deleted file mode 100644 index 0ba9b2d2741..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/CodeFile.json +++ /dev/null @@ -1,123 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "CodeFile.json", - "type": "object", - "properties": { - "VersionString": { - "type": "string", - "description": "The version of the parser" - }, - "Name": { - "type": "string", - "description": "Name the ocde file. Usually just the package name and version" - }, - "Language": { - "anyOf": [ - { - "type": "string", - "const": "C" - }, - { - "type": "string", - "const": "C#" - }, - { - "type": "string", - "const": "C++" - }, - { - "type": "string", - "const": "Go" - }, - { - "type": "string", - "const": "Java" - }, - { - "type": "string", - "const": "JavaScript" - }, - { - "type": "string", - "const": "Json" - }, - { - "type": "string", - "const": "Kotlin" - }, - { - "type": "string", - "const": "Python" - }, - { - "type": "string", - "const": "Swagger" - }, - { - "type": "string", - "const": "Swift" - }, - { - "type": "string", - "const": "TypeSpec" - }, - { - "type": "string", - "const": "Xml" - } - ] - }, - "LanguageVariant": { - "anyOf": [ - { - "type": "string", - "const": "Default" - }, - { - "type": "string", - "const": "Spring" - }, - { - "type": "string", - "const": "Android" - } - ], - "default": "Default" - }, - "PackageName": { - "type": "string" - }, - "ServiceName": { - "type": "string" - }, - "PackageVersion": { - "type": "string" - }, - "CrossLanguagePackageId": { - "type": "string", - "description": "Maps related packages across Languages" - }, - "APIForest": { - "type": "array", - "items": { - "$ref": "APITreeNode.json" - }, - "description": "The API Tree(s)" - }, - "Diagnostics": { - "type": "array", - "items": { - "$ref": "CodeDiagnostic.json" - } - } - }, - "required": [ - "VersionString", - "Name", - "Language", - "PackageName", - "PackageVersion", - "APIForest", - "Diagnostics" - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredToken.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredToken.json deleted file mode 100644 index e834ea66c92..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredToken.json +++ /dev/null @@ -1,41 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredToken.json", - "type": "object", - "properties": { - "Id": { - "$ref": "StructuredTokenId.json", - "description": "Token Id. Previously known as DefinitionId. Also the id used to place APIView comments. Needs to be deterministic" - }, - "Kind": { - "$ref": "StructuredTokenKind.json", - "description": "Represents the type of a structured token" - }, - "Value": { - "type": "string", - "description": "The token value which will be displayed. Spacing tokens (LineBreak, NonBreakingSpace, TabSpace, and ParameterSeparator) don't need to have value" - }, - "Properties": { - "$ref": "StructuredTokenProperties.json", - "description": "Properties of the StructuredToken." - }, - "Tags": { - "type": "array", - "items": { - "$ref": "StructuredTokenTags.json" - }, - "description": "Tags of the StructuredToken." - }, - "RenderClasses": { - "type": "array", - "items": { - "$ref": "StructuredTokenRenderClasses.json" - }, - "description": "Classes used to render the StructuredTokens." - } - }, - "required": [ - "Id", - "Kind" - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenId.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenId.json deleted file mode 100644 index 32ed4942049..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenId.json +++ /dev/null @@ -1,5 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredTokenId.json", - "type": "string" -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenKind.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenKind.json deleted file mode 100644 index 5481a0d6472..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenKind.json +++ /dev/null @@ -1,12 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredTokenKind.json", - "type": "number", - "enum": [ - 0, - 1, - 2, - 3, - 4 - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenProperties.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenProperties.json deleted file mode 100644 index 539979162a9..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenProperties.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredTokenProperties.json", - "type": "object", - "properties": { - "GroupId": { - "type": "string", - "const": "doc", - "description": "Group a sequence of consecutive StructuredTokens. doc indicates that the group of tokens is documentation." - }, - "NavigateToId": { - "$ref": "APITreeNodeId.json", - "description": "Id to navigate to when StructuredToken is clicked." - } - } -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenRenderClasses.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenRenderClasses.json deleted file mode 100644 index 8c84e034002..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenRenderClasses.json +++ /dev/null @@ -1,47 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredTokenRenderClasses.json", - "anyOf": [ - { - "type": "string", - "const": "comment" - }, - { - "type": "string", - "const": "keyword" - }, - { - "type": "string", - "const": "literal" - }, - { - "type": "string", - "const": "sliteral", - "description": "string literal" - }, - { - "type": "string", - "const": "mname", - "description": "member name" - }, - { - "type": "string", - "const": "tname", - "description": "type name" - }, - { - "type": "string", - "const": "punc", - "description": "punctuation" - }, - { - "type": "string", - "const": "text" - }, - { - "type": "string", - "description": "Contribute extra classes at https://github.com/Azure/azure-sdk-tools/blob/main/src/dotnet/APIView/ClientSPA/src/app/_components/code-panel/code-panel.component.scss" - } - ], - "description": "Classes used to render the StructuredTokens. Extendable by contributing styles at https://github.com/Azure/azure-sdk-tools/blob/main/src/dotnet/APIView/ClientSPA/src/app/_components/code-panel/code-panel.component.scss" -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenTags.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenTags.json deleted file mode 100644 index 3534f2bc6e4..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/json-schema/StructuredTokenTags.json +++ /dev/null @@ -1,16 +0,0 @@ -{ - "$schema": "http://json-schema.org/draft-07/schema#", - "$id": "StructuredTokenTags.json", - "anyOf": [ - { - "type": "string", - "const": "Deprecated", - "description": "Mark a token as deprecated" - }, - { - "type": "string", - "const": "SkipDiff", - "description": "Indicate that a Token should not be used in computing diff" - } - ] -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/model.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/model.json new file mode 100644 index 00000000000..6e242b3518c --- /dev/null +++ b/tools/apiview/parsers/apiview-treestyle-parser-schema/model.json @@ -0,0 +1,243 @@ +{ + "$schema": "https://json-schema.org/draft/2020-12/schema", + "$id": "CodeFile.json", + "type": "object", + "properties": { + "PackageName": { + "type": "string" + }, + "PackageVersion": { + "type": "string" + }, + "ParserVersion": { + "type": "string", + "description": "version of the APIview language parser used to create token file" + }, + "Language": { + "anyOf": [ + { + "type": "string", + "const": "C" + }, + { + "type": "string", + "const": "C++" + }, + { + "type": "string", + "const": "C#" + }, + { + "type": "string", + "const": "Go" + }, + { + "type": "string", + "const": "Java" + }, + { + "type": "string", + "const": "JavaScript" + }, + { + "type": "string", + "const": "Kotlin" + }, + { + "type": "string", + "const": "Python" + }, + { + "type": "string", + "const": "Swagger" + }, + { + "type": "string", + "const": "Swift" + }, + { + "type": "string", + "const": "TypeSpec" + } + ] + }, + "LanguageVariant": { + "anyOf": [ + { + "type": "string", + "const": "None" + }, + { + "type": "string", + "const": "Spring" + }, + { + "type": "string", + "const": "Android" + } + ], + "default": "None", + "description": "Language variant is applicable only for java variants" + }, + "CrossLanguagePackageId": { + "type": "string" + }, + "ReviewLines": { + "type": "array", + "items": { + "$ref": "#/$defs/ReviewLine" + } + }, + "Diagnostics": { + "type": "array", + "items": { + "$ref": "#/$defs/CodeDiagnostic" + }, + "description": "Add any system generated comments. Each comment is linked to review line ID" + } + }, + "required": [ + "PackageName", + "PackageVersion", + "ParserVersion", + "Language", + "ReviewLines" + ], + "description": "ReviewFile represents entire API review object. This will be processed to render review lines.", + "$defs": { + "ReviewLine": { + "type": "object", + "properties": { + "LineId": { + "type": "string", + "description": "lineId is only required if we need to support commenting on a line that contains this token. \nUsually code line for documentation or just punctuation is not required to have lineId. lineId should be a unique value within \nthe review token file to use it assign to review comments as well as navigation Id within the review page.\nfor e.g Azure.Core.HttpHeader.Common, azure.template.template_main" + }, + "CrossLanguageId": { + "type": "string" + }, + "Tokens": { + "type": "array", + "items": { + "$ref": "#/$defs/ReviewToken" + }, + "description": "list of tokens that constructs a line in API review" + }, + "Children": { + "type": "array", + "items": { + "$ref": "#/$defs/ReviewLine" + }, + "description": "Add any child lines as children. For e.g. all classes and namespace level methods are added as a children of namespace(module) level code line. \nSimilarly all method level code lines are added as children of it's class code line." + }, + "IsHidden": { + "type": "boolean", + "description": "Set current line as hidden code line by default. .NET has hidden APIs and architects does not want to see them by default." + } + }, + "required": [ + "Tokens" + ], + "description": "ReviewLine object corresponds to each line displayed on API review. If an empty line is required then add a code line object without any token." + }, + "CodeDiagnostic": { + "type": "object", + "properties": { + "DiagnosticId": { + "type": "string" + }, + "TargetId": { + "type": "string", + "description": "Id of ReviewLine object where this diagnostic needs to be displayed(Options" + }, + "Text": { + "type": "string" + }, + "Level": { + "$ref": "#/$defs/CodeDiagnosticLevel" + }, + "HelpLinkUri": { + "type": "string" + } + }, + "required": [ + "TargetId", + "Text", + "Level" + ], + "description": "System comment object is to add system generated comment. It can be one of the 4 different types of system comments." + }, + "ReviewToken": { + "type": "object", + "properties": { + "Kind": { + "$ref": "#/$defs/TokenKind" + }, + "Value": { + "type": "string" + }, + "NavigationDisplayName": { + "type": "string", + "description": "NavigationDisplayName can be used set navigation dispaly name to be used in navigation tree.\nThis value will be used in the navigation if NavigationDisplayName is not set." + }, + "NavigateToId": { + "type": "string", + "description": "navigateToId should be set if the underlying token is required to be displayed as HREF to another type within the review.\nFor e.g. a param type which is class name in the same package" + }, + "SkipDiff": { + "type": "boolean", + "default": false, + "description": "set skipDiff to true if underlying token needs to be ignored from diff calculation. For e.g. package metadata or dependency versions \nare usually excluded when comparing two revisions to avoid reporting them as API changes" + }, + "IsDeprecated": { + "type": "boolean", + "default": false, + "description": "This is set if API is marked as deprecated" + }, + "HasSuffixSpace": { + "type": "boolean", + "default": true, + "description": "Set this to false if there is no suffix space required before next token. For e.g, punctuation right after method name" + }, + "IsDocumentation": { + "type": "boolean", + "default": false, + "description": "Set isDocumentation to true if current token is part of documentation" + }, + "RenderClasses": { + "type": "array", + "items": { + "type": "string" + }, + "description": "Language specific style css class names" + } + }, + "required": [ + "Kind", + "Value" + ], + "description": "Token corresponds to each component within a code line. A separate token is required for keyword, punctuation, type name, text etc." + }, + "CodeDiagnosticLevel": { + "type": "number", + "enum": [ + 1, + 2, + 3, + 4 + ] + }, + "TokenKind": { + "type": "number", + "enum": [ + 0, + 1, + 2, + 3, + 4, + 5, + 6, + 7 + ] + } + } +} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/model.tsp b/tools/apiview/parsers/apiview-treestyle-parser-schema/model.tsp new file mode 100644 index 00000000000..5b760a53800 --- /dev/null +++ b/tools/apiview/parsers/apiview-treestyle-parser-schema/model.tsp @@ -0,0 +1,96 @@ +import "@typespec/json-schema"; + +using TypeSpec.JsonSchema; + +@jsonSchema + +/** ReviewFile represents entire API review object. This will be processed to render review lines. */ +model CodeFile { + PackageName: string; + PackageVersion: string; + /** version of the APIview language parser used to create token file*/ + ParserVersion: string; + Language: "C"|"C++"|"C#"|"Go"|"Java"|"JavaScript"|"Kotlin"|"Python"|"Swagger"|"Swift"|"TypeSpec"; + /** Language variant is applicable only for java variants*/ + LanguageVariant?: "None" | "Spring" | "Android" = "None"; + CrossLanguagePackageId?: string; + ReviewLines: Array; + /** Add any system generated comments. Each comment is linked to review line ID */ + Diagnostics?: Array; +} + + +/** ReviewLine object corresponds to each line displayed on API review. If an empty line is required then add a code line object without any token. */ +model ReviewLine { + /** lineId is only required if we need to support commenting on a line that contains this token. + * Usually code line for documentation or just punctuation is not required to have lineId. lineId should be a unique value within + * the review token file to use it assign to review comments as well as navigation Id within the review page. + * for e.g Azure.Core.HttpHeader.Common, azure.template.template_main + */ + LineId?: string; + CrossLanguageId?: string; + /** list of tokens that constructs a line in API review */ + Tokens: Array; + /** Add any child lines as children. For e.g. all classes and namespace level methods are added as a children of namespace(module) level code line. + * Similarly all method level code lines are added as children of it's class code line.*/ + Children?: Array; + /** Set current line as hidden code line by default. .NET has hidden APIs and architects don't want to see them by default. */ + IsHidden?: boolean; +} + + +/** Token corresponds to each component within a code line. A separate token is required for keyword, punctuation, type name, text etc. */ +model ReviewToken { + Kind: TokenKind; + Value: string; + /** NavigationDisplayName is used to create a tree node in the navigation panel. Navigation nodes will be created only if token contains navigation display name.*/ + NavigationDisplayName?: string; + /** navigateToId should be set if the underlying token is required to be displayed as HREF to another type within the review. + * For e.g. a param type which is class name in the same package + */ + NavigateToId?: string; + /** set skipDiff to true if underlying token needs to be ignored from diff calculation. For e.g. package metadata or dependency versions + * are usually excluded when comparing two revisions to avoid reporting them as API changes*/ + SkipDiff?: boolean = false; + /** This is set if API is marked as deprecated */ + IsDeprecated?: boolean = false; + /** Set this to false if there is no suffix space required before next token. For e.g, punctuation right after method name */ + HasSuffixSpace?: boolean = true; + /** Set isDocumentation to true if current token is part of documentation */ + IsDocumentation?: boolean = false; + /** Language specific style css class names */ + RenderClasses?: Array; +} + + +/** System comment object is to add system generated comment. It can be one of the 4 different types of system comments. */ +model CodeDiagnostic { + /** Diagnostic ID is auto generated ID by CSharp analyzer. */ + DiagnosticId?: string; + /** Id of ReviewLine object where this diagnostic needs to be displayed */ + TargetId: string; + /** Auto generated system comment to be displayed under targeted line. */ + Text: string; + Level: CodeDiagnosticLevel; + HelpLinkUri?: string; +} + +enum TokenKind { + Text: 0, + Punctuation: 1, + Keyword: 2, + TypeName: 3, + MemberName: 4, + StringLiteral: 5, + Literal: 6, + Comment: 7 +} + +enum CodeDiagnosticLevel { + Info: 1, + Warning: 2, + Error: 3, + /** Fatal level diagnostic will block API review approval and it will show an error message to the user. Approver will have to + * override fatal level system comments before approving a review.*/ + Fatal: 4 +} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/models.tsp b/tools/apiview/parsers/apiview-treestyle-parser-schema/models.tsp deleted file mode 100644 index 187b900145c..00000000000 --- a/tools/apiview/parsers/apiview-treestyle-parser-schema/models.tsp +++ /dev/null @@ -1,155 +0,0 @@ -scalar StructuredTokenId extends string; -scalar APITreeNodeId extends string; - -enum StructuredTokenKind { - /** Default kind */ - Content: 0, - - /** Starts a new line */ - LineBreak: 1, - - /** Single Space */ - NonBreakingSpace: 2, - - /** Four spaces */ - TabSpace: 3, - - /** Use this between method parameters. Depending on user setting this would result in a LineBreak or a LineBreak + TabSpace */ - ParameterSeparator: 4 -} - -enum CodeDiagnosticLevel { - Info: 1, - Warning: 2, - Error: 3, - Fatal: 4 -} - -/** Classes used to render the StructuredTokens. Extendable by contributing styles at https://github.com/Azure/azure-sdk-tools/blob/main/src/dotnet/APIView/ClientSPA/src/app/_components/code-panel/code-panel.component.scss */ -union StructuredTokenRenderClasses { - "comment", - "keyword", - "literal", - /** string literal */ - "sliteral", - /** member name */ - "mname", - /** type name */ - "tname", - /** punctuation */ - "punc", - "text", - /** Contribute extra classes at https://github.com/Azure/azure-sdk-tools/blob/main/src/dotnet/APIView/ClientSPA/src/app/_components/code-panel/code-panel.component.scss */ - string -} - -union APITreeNodeTags { - /** Mark a token as deprecated. */ - "Deprecated", - /** Mark a node as Hidden. */ - "Hidden", - /** Indicate that a node should be hidden from the page navigation. */ - "HideFromNav", - /** Indicate that a node should not be used in computation of diff. */ - "SkipDiff" -} - -union StructuredTokenTags { - /** Mark a token as deprecated */ - "Deprecated", - /** Indicate that a Token should not be used in computing diff*/ - "SkipDiff", -} - -model CodeFile { - /** The version of the parser */ - VersionString: string; - - /** Name the ocde file. Usually just the package name and version*/ - Name: string; - - Language: "C" | "C#"| "C++" | "Go" | "Java" | "JavaScript" | "Json" | "Kotlin" | "Python" | "Swagger" | "Swift" | "TypeSpec" | "Xml"; - LanguageVariant?: "Default" | "Spring" | "Android" = "Default"; - PackageName: string; - ServiceName?: string; - PackageVersion: string; - - /** Maps related packages across Languages */ - CrossLanguagePackageId?: string; - - /** The API Tree(s) */ - APIForest: APITreeNode[]; - - Diagnostics: CodeDiagnostic[]; -} - -model CodeDiagnostic { - /** String associated with a given diagnostic usieally produced by an analyzer*/ - DiagnosticId: string; - Text: string; - HelpLinkUri: string; - /** Maps to the APITreeNode id */ - TargetId: APITreeNodeId; - Level: CodeDiagnosticLevel; -} - -model APITreeNode { - /** The name of the tree node which will be used as label for the API Navigation. Generally this is the name of the module (class, method). */ - Name: string; - - /** Id of the node, which should be unique at the node level. i.e. unique among its siblings. This was previously represented by the DefinitionId for the main Token of the node. */ - Id: APITreeNodeId; - - /** Descriptor for the kind of the node. Currently used to select navigation icons */ - Kind: "assembly" | "namespace" | "class" | "delegate" | "enum" | "interface" | "method" | "package" | "struct" | "type"; - - /** The main data of the node. This is all the tokens that actually define the node. When rendering, TopTokens are rendered first, followed by any Children, and then finally BottomTokens */ - TopTokens?: StructuredToken[]; - - /** Tokens which are rendered after all child nodes. Depending on the language this would include the closing curly brace and/or empty lines. */ - BottomTokens?: StructuredToken[]; - - /** The nodes immediate children. For a namespace this would be classes, for a class this would be the class constructors and methods. Children are rendered after TopTokens but before BottomTokens, and are automatically indented.*/ - Children?: APITreeNode[]; - - /** Properties of the APITreeNode. */ - Properties?: APITreeNodeProperties; - - /** Tags of the APITreeNode. */ - Tags?: APITreeNodeTags[]; -} - -model StructuredToken { - /** Token Id. Previously known as DefinitionId. Also the id used to place APIView comments. Needs to be deterministic */ - Id: StructuredTokenId; - - /** Represents the type of a structured token*/ - Kind: StructuredTokenKind; - - /** The token value which will be displayed. Spacing tokens (LineBreak, NonBreakingSpace, TabSpace, and ParameterSeparator) don't need to have value */ - Value?: string; - - /** Properties of the StructuredToken. */ - Properties?: StructuredTokenProperties; - - /** Tags of the StructuredToken. */ - Tags?: StructuredTokenTags[]; - - /** Classes used to render the StructuredTokens. */ - RenderClasses?: StructuredTokenRenderClasses[] -} - -model APITreeNodeProperties { - /** Use this only if you are looking to add a custom icon different from language wide defaults set by APITreeNode kind*/ - IconName?: string; - /** The cross language definitionId for the node. */ - CrossLangDefId?: string; -} - -model StructuredTokenProperties { - /** Group a sequence of consecutive StructuredTokens. doc indicates that the group of tokens is documentation. */ - GroupId?: "doc"; - - /** Id to navigate to when StructuredToken is clicked. */ - NavigateToId?: APITreeNodeId; -} \ No newline at end of file diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_review_content.txt b/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_review_content.txt new file mode 100644 index 00000000000..8728fc333f3 --- /dev/null +++ b/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_review_content.txt @@ -0,0 +1,42 @@ +Dependencies: +Azure.Core-1.41.0 +System.Text.Json-4.7.2 + + +namespace Azure.Template { + public class TemplateClient { + public TemplateClient(string vaultBaseUrl, TokenCredential credential); + public TemplateClient(string vaultBaseUrl, TokenCredential credential, TemplateClientOptions options); + protected TemplateClient(); + public virtual HttpPipeline Pipeline { get; } + public virtual Response GetSecret(string secretName, RequestContext context); + public virtual Task GetSecretAsync(string secretName, RequestContext context); + public virtual Response GetSecretValue(string secretName, CancellationToken cancellationToken = default); + public virtual Task> GetSecretValueAsync(string secretName, CancellationToken cancellationToken = default); + } + + public class TemplateClientOptions : ClientOptions { + public enum ServiceVersion { + V7_0 = 1, + } + public TemplateClientOptions(ServiceVersion version = V7_0); + } +} + +namespace Azure.Template.Models { + public class SecretBundle { + public string ContentType { get; } + public string Id { get; } + public string Kid { get; } + public bool? Managed { get; } + public IReadOnlyDictionary Tags { get; } + public string Value { get; } + } +} + +namespace Microsoft.Extensions.Azure { + public static class TemplateClientBuilderExtensions { + public static IAzureClientBuilder AddTemplateClient(this TBuilder builder, string vaultBaseUrl) where TBuilder : IAzureClientFactoryBuilderWithCredential; + public static IAzureClientBuilder AddTemplateClient(this TBuilder builder, TConfiguration configuration) where TBuilder : IAzureClientFactoryBuilderWithConfiguration; + } +} diff --git a/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_token.json b/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_token.json new file mode 100644 index 00000000000..aefbc0480d1 --- /dev/null +++ b/tools/apiview/parsers/apiview-treestyle-parser-schema/sample/Azure.Template_token.json @@ -0,0 +1,3569 @@ +{ + "Version": 0, + "VersionString": "29", + "Language": "C#", + "PackageName": "Azure.Template", + "PackageVersion": "1.0.3.0", + "Tokens": [], + "Diagnostics": [ + { + "DiagnosticId": "AZC0007", + "Text": "A client type should have a public constructor with equivalent parameters that doesn\u0027t take a Azure.Core.ClientOptions-derived type as the last argument", + "HelpLinkUri": "https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-client-constructor-minimal", + "TargetId": "Azure.Template.TemplateClient.TemplateClient(System.String, Azure.Core.TokenCredential)", + "Level": 3 + }, + { + "DiagnosticId": "AZC0007", + "Text": "A client type should have a public constructor with equivalent parameters that doesn\u0027t take a Azure.Core.ClientOptions-derived type as the last argument", + "HelpLinkUri": "https://azure.github.io/azure-sdk/dotnet_introduction.html#dotnet-client-constructor-minimal", + "TargetId": "Azure.Template.TemplateClient.TemplateClient(System.String, Azure.Core.TokenCredential, Azure.Template.TemplateClientOptions)", + "Level": 3 + } + ], + "ParserVersion": "29", + "ReviewLines": [ + { + "LineId": "Dependencies", + "Tokens": [ + { + "Kind": 5, + "Value": "Dependencies:", + "NavigationDisplayName": "Dependencies", + "HasSuffixSpace": true, + "RenderClasses": [ + "dependencies" + ] + } + ], + "Children": [] + }, + { + "LineId": "Azure.Core", + "Tokens": [ + { + "Kind": 5, + "Value": "Azure.Core", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 5, + "Value": "-1.41.0", + "SkipDiff": true, + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [] + }, + { + "LineId": "System.Text.Json", + "Tokens": [ + { + "Kind": 5, + "Value": "System.Text.Json", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 5, + "Value": "-4.7.2", + "SkipDiff": true, + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [] + }, + { + "Tokens": [], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template", + "Tokens": [ + { + "Kind": 2, + "Value": "namespace", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Azure", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ".", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Template", + "NavigationDisplayName": "Azure.Template", + "HasSuffixSpace": true, + "RenderClasses": [ + "namespace" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The Template service client. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The Template service client. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "class", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "NavigationDisplayName": "TemplateClient", + "HasSuffixSpace": true, + "RenderClasses": [ + "class" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Initializes a new instance of TemplateClient. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022vaultBaseUrl\u0022\u003E The vault name, for example https://myvault.vault.azure.net. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022credential\u0022\u003E A credential used to authenticate to an Azure Service. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentNullException\u0022\u003E \u003Cparamref name=\u0022vaultBaseUrl\u0022 /\u003E or \u003Cparamref name=\u0022credential\u0022 /\u003E is null. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.TemplateClient(System.String, Azure.Core.TokenCredential)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "vaultBaseUrl", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TokenCredential", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "credential", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Initializes a new instance of TemplateClient. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022vaultBaseUrl\u0022\u003E The vault name, for example https://myvault.vault.azure.net. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022credential\u0022\u003E A credential used to authenticate to an Azure Service. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022options\u0022\u003E The options for configuring the client. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentNullException\u0022\u003E \u003Cparamref name=\u0022vaultBaseUrl\u0022 /\u003E or \u003Cparamref name=\u0022credential\u0022 /\u003E is null. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.TemplateClient(System.String, Azure.Core.TokenCredential, Azure.Template.TemplateClientOptions)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "vaultBaseUrl", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TokenCredential", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "credential", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientOptions", + "NavigateToId": "Azure.Template.TemplateClientOptions", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "options", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Initializes a new instance of TemplateClient for mocking. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.TemplateClient()", + "Tokens": [ + { + "Kind": 2, + "Value": "protected", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The HTTP pipeline for sending and receiving REST requests and responses. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.Pipeline", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "virtual", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "HttpPipeline", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Pipeline", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// [Protocol Method] Get a specified secret from a given key vault.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Clist type=\u0022bullet\u0022\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Citem\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cdescription\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This \u003Csee href=\u0022https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/ProtocolMethods.md\u0022\u003Eprotocol method\u003C/see\u003E allows explicit creation of the request and processing of the response for advanced scenarios.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/description\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/item\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/list\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022secretName\u0022\u003E The name of the secret. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022context\u0022\u003E The request context, which can override default behaviors of the client pipeline on a per-call basis. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentNullException\u0022\u003E \u003Cparamref name=\u0022secretName\u0022 /\u003E is null. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentException\u0022\u003E \u003Cparamref name=\u0022secretName\u0022 /\u003E is an empty string, and was expected to be non-empty. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:Azure.RequestFailedException\u0022\u003E Service returned a non-success status code. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Creturns\u003E The response returned from the service. \u003C/returns\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexample\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This sample shows how to call GetSecret and parse the result.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Ccode\u003E\u003C![CDATA[", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TokenCredential credential = new DefaultAzureCredential();", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TemplateClient client = new TemplateClient(\u0022\u003CVaultBaseUrl\u003E\u0022, credential);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Response response = client.GetSecret(\u0022\u003CsecretName\u003E\u0022, null);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ]]\u003E\u003C/code\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This sample shows how to call GetSecret with all parameters and parse the result.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Ccode\u003E\u003C![CDATA[", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TokenCredential credential = new DefaultAzureCredential();", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TemplateClient client = new TemplateClient(\u0022\u003CVaultBaseUrl\u003E\u0022, credential);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Response response = client.GetSecret(\u0022\u003CsecretName\u003E\u0022, null);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022value\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022id\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022contentType\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022tags\u0022).GetProperty(\u0022\u003Ckey\u003E\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022kid\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022managed\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ]]\u003E\u003C/code\u003E\u003C/example\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.GetSecret(System.String, Azure.RequestContext)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "virtual", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Response", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "GetSecret", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "secretName", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "RequestContext", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "context", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// [Protocol Method] Get a specified secret from a given key vault.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Clist type=\u0022bullet\u0022\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Citem\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cdescription\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This \u003Csee href=\u0022https://github.com/Azure/azure-sdk-for-net/blob/main/sdk/core/Azure.Core/samples/ProtocolMethods.md\u0022\u003Eprotocol method\u003C/see\u003E allows explicit creation of the request and processing of the response for advanced scenarios.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/description\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/item\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/list\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022secretName\u0022\u003E The name of the secret. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022context\u0022\u003E The request context, which can override default behaviors of the client pipeline on a per-call basis. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentNullException\u0022\u003E \u003Cparamref name=\u0022secretName\u0022 /\u003E is null. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:System.ArgumentException\u0022\u003E \u003Cparamref name=\u0022secretName\u0022 /\u003E is an empty string, and was expected to be non-empty. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexception cref=\u0022T:Azure.RequestFailedException\u0022\u003E Service returned a non-success status code. \u003C/exception\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Creturns\u003E The response returned from the service. \u003C/returns\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cexample\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This sample shows how to call GetSecretAsync and parse the result.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Ccode\u003E\u003C![CDATA[", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TokenCredential credential = new DefaultAzureCredential();", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TemplateClient client = new TemplateClient(\u0022\u003CVaultBaseUrl\u003E\u0022, credential);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Response response = await client.GetSecretAsync(\u0022\u003CsecretName\u003E\u0022, null);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ]]\u003E\u003C/code\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// This sample shows how to call GetSecretAsync with all parameters and parse the result.", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Ccode\u003E\u003C![CDATA[", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TokenCredential credential = new DefaultAzureCredential();", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// TemplateClient client = new TemplateClient(\u0022\u003CVaultBaseUrl\u003E\u0022, credential);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Response response = await client.GetSecretAsync(\u0022\u003CsecretName\u003E\u0022, null);", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// JsonElement result = JsonDocument.Parse(response.ContentStream).RootElement;", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022value\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022id\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022contentType\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022tags\u0022).GetProperty(\u0022\u003Ckey\u003E\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022kid\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// Console.WriteLine(result.GetProperty(\u0022managed\u0022).ToString());", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// ]]\u003E\u003C/code\u003E\u003C/example\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.GetSecretAsync(System.String, Azure.RequestContext)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "virtual", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Task", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Response", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "GetSecretAsync", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "secretName", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "RequestContext", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "context", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022secretName\u0022\u003E The name of the secret. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022cancellationToken\u0022\u003E The cancellation token to use. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.GetSecretValue(System.String, System.Threading.CancellationToken)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "virtual", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Response", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "SecretBundle", + "NavigateToId": "Azure.Template.Models.SecretBundle", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "GetSecretValue", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "secretName", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "CancellationToken", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "cancellationToken", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "=", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "default", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The GET operation is applicable to any secret stored in Azure Key Vault. This operation requires the secrets/get permission. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022secretName\u0022\u003E The name of the secret. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022cancellationToken\u0022\u003E The cancellation token to use. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClient.GetSecretValueAsync(System.String, System.Threading.CancellationToken)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "virtual", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Task", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "Response", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "SecretBundle", + "NavigateToId": "Azure.Template.Models.SecretBundle", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "GetSecretValueAsync", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "secretName", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "CancellationToken", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "cancellationToken", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "=", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "default", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Client options for TemplateClient. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClientOptions", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "class", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientOptions", + "NavigationDisplayName": "TemplateClientOptions", + "HasSuffixSpace": true, + "RenderClasses": [ + "class" + ] + }, + { + "Kind": 1, + "Value": ":", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "ClientOptions", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The version of the service to use. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClientOptions.ServiceVersion", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "enum", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "ServiceVersion", + "NavigationDisplayName": "ServiceVersion", + "HasSuffixSpace": true, + "RenderClasses": [ + "enum" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Service version \u00227.0\u0022. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClientOptions.ServiceVersion.V7_0", + "Tokens": [ + { + "Kind": 4, + "Value": "V7_0", + "HasSuffixSpace": true, + "RenderClasses": [ + "field" + ] + }, + { + "Kind": 1, + "Value": "=", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "1", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Initializes new instance of TemplateClientOptions. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.TemplateClientOptions.TemplateClientOptions(Azure.Template.TemplateClientOptions.ServiceVersion)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientOptions", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "ServiceVersion", + "NavigateToId": "Azure.Template.TemplateClientOptions.ServiceVersion", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "version", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "=", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "V7_0", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models", + "Tokens": [ + { + "Kind": 2, + "Value": "namespace", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Azure", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ".", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Template", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ".", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Models", + "NavigationDisplayName": "Azure.Template.Models", + "HasSuffixSpace": true, + "RenderClasses": [ + "namespace" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E A secret consisting of a value, id and its attributes. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "class", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "SecretBundle", + "NavigationDisplayName": "SecretBundle", + "HasSuffixSpace": true, + "RenderClasses": [ + "class" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The content type of the secret. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.ContentType", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "ContentType", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The secret id. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.Id", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Id", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E If this is a secret backing a KV certificate, then this field specifies the corresponding key backing the KV certificate. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.Kid", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Kid", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E True if the secret\u0027s lifetime is managed by key vault. If this is a secret backing a certificate, then managed will be true. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.Managed", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "bool", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "?", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Managed", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Application specific metadata in the form of key-value pairs. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.Tags", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "IReadOnlyDictionary", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Tags", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E The secret value. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Azure.Template.Models.SecretBundle.Value", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "Value", + "HasSuffixSpace": true, + "RenderClasses": [ + "property" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "get", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "}", + "HasSuffixSpace": false, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Microsoft.Extensions.Azure", + "Tokens": [ + { + "Kind": 2, + "Value": "namespace", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Microsoft", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ".", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Extensions", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ".", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "Azure", + "NavigationDisplayName": "Microsoft.Extensions.Azure", + "HasSuffixSpace": true, + "RenderClasses": [ + "namespace" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Extension methods to add \u003Csee cref=\u0022T:Azure.Template.TemplateClient\u0022 /\u003E to client builder. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Microsoft.Extensions.Azure.TemplateClientBuilderExtensions", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "static", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "class", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientBuilderExtensions", + "NavigationDisplayName": "TemplateClientBuilderExtensions", + "HasSuffixSpace": true, + "RenderClasses": [ + "class" + ] + }, + { + "Kind": 1, + "Value": "{", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [ + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Registers a \u003Csee cref=\u0022T:Azure.Template.TemplateClient\u0022 /\u003E instance. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022builder\u0022\u003E The builder to register with. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022vaultBaseUrl\u0022\u003E The vault name, for example https://myvault.vault.azure.net. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Microsoft.Extensions.Azure.TemplateClientBuilderExtensions.AddTemplateClient\u003CTBuilder\u003E(TBuilder, System.String)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "static", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "IAzureClientBuilder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "NavigateToId": "Azure.Template.TemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientOptions", + "NavigateToId": "Azure.Template.TemplateClientOptions", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "AddTemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "this", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "builder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "string", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "vaultBaseUrl", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "where", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ":", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "IAzureClientFactoryBuilderWithCredential", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Csummary\u003E Registers a \u003Csee cref=\u0022T:Azure.Template.TemplateClient\u0022 /\u003E instance. \u003C/summary\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022builder\u0022\u003E The builder to register with. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 7, + "Value": "// \u003Cparam name=\u0022configuration\u0022\u003E The configuration values. \u003C/param\u003E", + "HasSuffixSpace": true, + "IsDocumentation": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + }, + { + "LineId": "Microsoft.Extensions.Azure.TemplateClientBuilderExtensions.AddTemplateClient\u003CTBuilder, TConfiguration\u003E(TBuilder, TConfiguration)", + "Tokens": [ + { + "Kind": 2, + "Value": "public", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "static", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "IAzureClientBuilder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClient", + "NavigateToId": "Azure.Template.TemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TemplateClientOptions", + "NavigateToId": "Azure.Template.TemplateClientOptions", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 4, + "Value": "AddTemplateClient", + "HasSuffixSpace": false, + "RenderClasses": [ + "method" + ] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TConfiguration", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "(", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "this", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "builder", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ",", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TConfiguration", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 0, + "Value": "configuration", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ")", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 2, + "Value": "where", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TBuilder", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ":", + "HasSuffixSpace": true, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "IAzureClientFactoryBuilderWithConfiguration", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003C", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 3, + "Value": "TConfiguration", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": "\u003E", + "HasSuffixSpace": false, + "RenderClasses": [] + }, + { + "Kind": 1, + "Value": ";", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ], + "IsHidden": false + }, + { + "Tokens": [ + { + "Kind": 5, + "Value": "}", + "HasSuffixSpace": true, + "RenderClasses": [] + } + ], + "Children": [], + "IsHidden": false + } + ] +} \ No newline at end of file diff --git a/tools/apiview/parsers/images/APITree.svg b/tools/apiview/parsers/images/APITree.svg deleted file mode 100644 index eeeaf3fde9c..00000000000 --- a/tools/apiview/parsers/images/APITree.svg +++ /dev/null @@ -1,211 +0,0 @@ - - - - - - - - - - Page-1 - - - Rectangle.1000 - - - - - - - Rectangle - - - - - - - Rectangle.11 - - - - - - - Rectangle.12 - - - - - - - Rectangle.13 - - - - - - - Rectangle.14 - - - - - - - Rectangle.15 - - - - - - - Sheet.16 - namespace - - - - namespace - - Sheet.18 - } - - - - } - - Sheet.19 - Public - - - - Public - - Sheet.20 - } - - - - } - - Sheet.21 - Public - - - - Public - - Sheet.22 - Azure.Template - - - - Azure.Template - - Sheet.23 - - - - Sheet.25 - - - - Sheet.26 - { - - - - { - - Sheet.27 - TemplateClient - - - - TemplateClient - - Sheet.28 - - - - Sheet.29 - class - - - - class - - Sheet.30 - - - - Sheet.31 - TemplateClient - - - - TemplateClient - - Sheet.33 - - - - Sheet.34 - ( - - - - ( - - Sheet.35 - string - - - - string - - Sheet.36 - vaultBaseUrl - - - - vaultBaseUrl - - Sheet.37 - ) - - - - ) - - Sheet.38 - ; - - - - ; - - Sheet.39 - Top Token - - - - Top Token - - Sheet.40 - Bottom Token - - - - Bottom Token - - diff --git a/tools/apiview/parsers/images/apitree-node-and-tokens.png b/tools/apiview/parsers/images/apitree-node-and-tokens.png deleted file mode 100644 index 3bff57c865c..00000000000 Binary files a/tools/apiview/parsers/images/apitree-node-and-tokens.png and /dev/null differ diff --git a/tools/apiview/parsers/images/deprecated-node.png b/tools/apiview/parsers/images/deprecated-node.png deleted file mode 100644 index 24dc34235cc..00000000000 Binary files a/tools/apiview/parsers/images/deprecated-node.png and /dev/null differ diff --git a/tools/apiview/parsers/images/deprecated-token.png b/tools/apiview/parsers/images/deprecated-token.png deleted file mode 100644 index 578b53d151b..00000000000 Binary files a/tools/apiview/parsers/images/deprecated-token.png and /dev/null differ diff --git a/tools/apiview/parsers/images/documentation.png b/tools/apiview/parsers/images/documentation.png deleted file mode 100644 index 59ae60a36e2..00000000000 Binary files a/tools/apiview/parsers/images/documentation.png and /dev/null differ diff --git a/tools/apiview/parsers/images/hidden-api.png b/tools/apiview/parsers/images/hidden-api.png deleted file mode 100644 index dd35e0b4bfa..00000000000 Binary files a/tools/apiview/parsers/images/hidden-api.png and /dev/null differ diff --git a/tools/apiview/parsers/images/navigation.png b/tools/apiview/parsers/images/navigation.png deleted file mode 100644 index 38ed23051c6..00000000000 Binary files a/tools/apiview/parsers/images/navigation.png and /dev/null differ diff --git a/tools/apiview/parsers/images/parameter-separator-with-line-break.png b/tools/apiview/parsers/images/parameter-separator-with-line-break.png deleted file mode 100644 index e6b1372278b..00000000000 Binary files a/tools/apiview/parsers/images/parameter-separator-with-line-break.png and /dev/null differ diff --git a/tools/apiview/parsers/images/parameter-separator-with-single-space.png b/tools/apiview/parsers/images/parameter-separator-with-single-space.png deleted file mode 100644 index 71b5c25a895..00000000000 Binary files a/tools/apiview/parsers/images/parameter-separator-with-single-space.png and /dev/null differ diff --git a/tools/apiview/parsers/images/url-token.png b/tools/apiview/parsers/images/url-token.png deleted file mode 100644 index c5545b95bd1..00000000000 Binary files a/tools/apiview/parsers/images/url-token.png and /dev/null differ