From f891877254719885c5dd1da5f8db65ea0ffec7ce Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Thu, 15 Nov 2018 14:41:38 -0800 Subject: [PATCH 01/15] Instance Metadata Service: Initial Commit Initial commit of Instance Metadata Service -Added Swagger for 2018-10-01 -Added examples for 2018-10-01 --- .../2018-10-01/examples/getattesteddata.json | 57 ++ .../2018-10-01/examples/getidentityinfo.json | 43 ++ .../2018-10-01/examples/getidentitytoken.json | 50 ++ .../examples/getinstancemetadata.json | 89 +++ .../stable/2018-10-01/imds.json | 725 ++++++++++++++++++ specification/imds/resource-manager/readme.md | 54 ++ .../imds/resource-manager/readme.python.md | 27 + 7 files changed, 1045 insertions(+) create mode 100644 specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json create mode 100644 specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json create mode 100644 specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json create mode 100644 specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json create mode 100644 specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json create mode 100644 specification/imds/resource-manager/readme.md create mode 100644 specification/imds/resource-manager/readme.python.md diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json new file mode 100644 index 000000000000..0c6ab44c69d7 --- /dev/null +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json @@ -0,0 +1,57 @@ +{ + "parameters": { + "api-version": "2018-10-01", + "nonce": "1111111111", + "Metadata": "true" + }, + "responses": { + "200": { + "body": { + "encoding": "pkcs7", + "signature": "MIID2gYJKoZIhvcNAQcCoIIDyzCCA8cCAQExDzANBgkqhkiG9w0BAQsFADCBggYJKoZIhvcNAQcBoHUEc3sibm9uY2UiOiIxMTExMTExMTExIiwicGxhbiI6eyJuYW1lIjoiIiwicHJvZHVjdCI6IiIsInB1Ymxpc2hlciI6IiJ9LCJ2bUlkIjoiMDJhYWI4YTQtNzRlZi00NzZlLTgxODItZjZkMmJhNDE2NmE2In2gggI/MIICOzCCAaSgAwIBAgIQQWsFjXN35oBJKFXI3QrM3TANBgkqhkiG9w0BAQQFADArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbTAeFw0xODExMDgxODUzMDRaFw0xODEyMDgxODUzMDNaMCsxKTAnBgNVBAMTIHRlc3RzdWJkb21haW4ubWV0YWRhdGEuYXp1cmUuY29tMIGfMA0GCSqGSIb3DQEBAQUAA4GNADCBiQKBgQDEi0FVslYnUX+MneC7ERMU4ZM88z4J80r7RPgvzxCPNhXUQlWm3cmVRZMD8kKMv7brkvEsATP7Ak60/I/XEtOga4LGCvMaQa8I/MW8IhSyp2Vj015glAiV8TeUI5DuOIOS96lQvM+G7bt23swkIwVjm1u1ViTZiKKytwpY/EGqzQIDAQABo2AwXjBcBgNVHQEEVTBTgBAt3MRgJmEoUMiPy7k06cLfoS0wKzEpMCcGA1UEAxMgdGVzdHN1YmRvbWFpbi5tZXRhZGF0YS5henVyZS5jb22CEEFrBY1zd+aASShVyN0KzN0wDQYJKoZIhvcNAQEEBQADgYEAd87qiZnRlGIFQ5IEcL/A7ru23WSQAOBsNPt70Fg1GtaEHcYshKUJFhGwXOgZ11cY5wRfrSvEKuzvhAeIZwkvzkBjC04g8sRrjN5leLY5CsKzQhjN52TUMsHhqTM58tfAnICeTddQwn6LOgfqtYH5WO+F/VbFCwPstYUqjmQEYAoxgegwgeUCAQEwPzArMSkwJwYDVQQDEyB0ZXN0c3ViZG9tYWluLm1ldGFkYXRhLmF6dXJlLmNvbQIQQWsFjXN35oBJKFXI3QrM3TANBgkqhkiG9w0BAQsFADANBgkqhkiG9w0BAQEFAASBgCbkRKmQ1MdWZPVOrX7ZBKHQUWPFrQQNdjk3KB67GkY0W0Taxut4K7D2PmiflVEwxB92pTbaZZr/dldu1k1ab1YamHcVYdgZgxIkoOWohGR0ym8oL9JHjFMEqHUbEPtDwE8X+djtDd8TVdb6LYe77IXmz/VaX4whuejlSvQXjaL" + } + }, + "400": { + "body": { + "error": "invalid_request", + "error_description": "Bad request" + } + }, + "403": { + "body": { + "error": "forbidden", + "error_description": "Forbidden" + } + }, + "404": { + "body": { + "error": "not_found", + "error_description": "Not found" + } + }, + "405": { + "body": { + "error": "method_not_allowed", + "error_description": "Not allowed" + } + }, + "429": { + "body": { + "error": "too_many_requests", + "error_description": "Too many requests" + } + }, + "503": { + "body": { + "error": "service_unavailable", + "error_description": "Service unavailable" + } + }, + "500": { + "body": { + "error": "server_error", + "error_description": "Server error" + } + } + } +} \ No newline at end of file diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json new file mode 100644 index 000000000000..e0857d0bceb9 --- /dev/null +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json @@ -0,0 +1,43 @@ +{ + "parameters": { + "api-version": "2018-10-01", + "Metadata": "true" + }, + "responses": { + "200": { + "body": { + "tenantId": "abd8daee-d393-4239-9377-883adda3d40f" + } + }, + "400": { + "body": { + "error": "invalid_request", + "error_description": "Bad request" + } + }, + "404": { + "body": { + "error": "not_found", + "error_description": "Not found" + } + }, + "405": { + "body": { + "error": "method_not_allowed", + "error_description": "Not allowed" + } + }, + "429": { + "body": { + "error": "too_many_requests", + "error_description": "Too many requests" + } + }, + "500": { + "body": { + "error": "server_error", + "error_description": "Server error" + } + } + } +} \ No newline at end of file diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json new file mode 100644 index 000000000000..0cf1fd061608 --- /dev/null +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json @@ -0,0 +1,50 @@ +{ + "parameters": { + "api-version": "2018-10-01", + "Metadata": "true", + "resource": "https://vault.azure.net" + }, + "responses": { + "200": { + "body": { + "access_token": "dummytoken", + "client_id": "be5947ed-3560-4afe-9504-59967a63f810", + "expires_in": "3599", + "expires_on": "1541705014", + "ext_expires_in": "262800", + "not_before": "1508961830", + "resource": "https://va" + } + }, + "400": { + "body": { + "error": "invalid_request", + "error_description": "Bad request" + } + }, + "404": { + "body": { + "error": "not_found", + "error_description": "Not found" + } + }, + "405": { + "body": { + "error": "method_not_allowed", + "error_description": "Not allowed" + } + }, + "429": { + "body": { + "error": "too_many_requests", + "error_description": "Too many requests" + } + }, + "500": { + "body": { + "error": "server_error", + "error_description": "Server error" + } + } + } +} \ No newline at end of file diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json new file mode 100644 index 000000000000..ad77c31e8d85 --- /dev/null +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json @@ -0,0 +1,89 @@ +{ + "parameters": { + "api-version": "2018-10-01", + "Metadata": "true" + }, + "responses": { + "200": { + "body": { + "compute": { + "azEnvironment": "AZUREPUBLICCLOUD", + "location": "westus", + "name": "examplevmname", + "offer": "Windows", + "osType": "linux", + "placementGroupId": "f67c14ab-e92c-408c-ae2d-da15866ec79a", + "plan": { + "name": "planName", + "product": "planProduct", + "publisher": "planPublisher" + }, + "platformFaultDomain": "36", + "platformUpdateDomain": "42", + "publicKeys": [ + { + "keyData": "ssh-rsa 0", + "path": "/home/user/.ssh/authorized_keys0" + }, + { + "keyData": "ssh-rsa 1", + "path": "/home/user/.ssh/authorized_keys1" + } + ], + "publisher": "RDFE-Test-Microsoft-Windows-Server-Group", + "resourceGroupName": "macikgo-test-may-23", + "sku": "Windows-Server-2012-R2-Datacenter", + "subscriptionId": "8d10da13-8125-4ba9-a717-bf7490507b3d", + "tags": "baz:bash;foo:bar", + "version": "15.05.22", + "vmId": "02aab8a4-74ef-476e-8182-f6d2ba4166a6", + "vmScaleSetName": "crpteste9vflji9", + "vmSize": "Standard_A3", + "zone": "" + } + } + }, + "400": { + "body": { + "error": "invalid_request", + "error_description": "Bad request" + } + }, + "403": { + "body": { + "error": "forbidden", + "error_description": "Forbidden" + } + }, + "404": { + "body": { + "error": "not_found", + "error_description": "Not found" + } + }, + "405": { + "body": { + "error": "method_not_allowed", + "error_description": "Not allowed" + } + }, + "429": { + "body": { + "error": "too_many_requests", + "error_description": "Too many requests" + } + }, + "503": { + "body": { + "error": "service_unavailable", + "error_description": "Service unavailable" + } + }, + "500": { + "body": { + "error": "server_error", + "error_description": "Server error" + } + } + } +} \ No newline at end of file diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json new file mode 100644 index 000000000000..b60733405db8 --- /dev/null +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -0,0 +1,725 @@ +{ + "swagger": "2.0", + "info": { + "title": "InstanceMetadataClient", + "description": "The Azure Instance Metadata Client.", + "version": "2018-10-01" + }, + "host": "169.254.169.254", + "basePath": "/metadata", + "schemes": [ + "http" + ], + "consumes": [ + "application/json" + ], + "produces": [ + "application/json" + ], + "paths": { + "/instance": { + "get": { + "operationId": "instance", + "description": "Get Instance Metadata for the Virtual Machine.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "This is the version of API to invoke." + }, + { + "name": "Metadata", + "in": "header", + "type": "string", + "enum": [ + "true" + ], + "description": "This must be set to 'true'.", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/instance" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "503": { + "description": "Service unavailable", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Instance Metadata for the VM": { + "$ref": "./examples/getinstancemetadata.json" + } + } + } + }, + "/attested/document": { + "get": { + "operationId": "attested", + "description": "Get Attested Data for the Virtual Machine.", + "parameters": [ + { + "name": "api-version", + "in": "query", + "required": true, + "type": "string", + "description": "This is the version of API to invoke." + }, + { + "name": "nonce", + "in": "query", + "required": false, + "type": "string", + "description": "10-digit random number." + }, + { + "name": "Metadata", + "in": "header", + "type": "string", + "enum": [ + "true" + ], + "description": "This must be set to 'true'.", + "required": true + } + ], + "responses": { + "200": { + "description": "OK", + "schema": { + "$ref": "#/definitions/attested" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "503": { + "description": "Service unavailable", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Attested Data for the VM": { + "$ref": "./examples/getattesteddata.json" + } + } + } + }, + "/identity/oauth2/token": { + "get": { + "tags": [ + "Get token" + ], + "summary": "Get a Token from Azure AD", + "description": "", + "operationId": "getToken", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "Metadata", + "in": "header", + "type": "string", + "enum": [ + "true" + ], + "description": "This must be set to 'true'.", + "required": true + }, + { + "name": "resource", + "in": "query", + "type": "string", + "description": "This is the urlencoded identifier URI of the sink resource for the requested Azure AD token. The resulting token contains the corresponding aud for this resource.", + "required": true + }, + { + "name": "api-version", + "in": "query", + "type": "string", + "enum": [ + "2018-02-01", + "2018-04-02", + "2018-10-01" + ], + "description": "This is the API version to use.", + "required": true + }, + { + "name": "client_id", + "in": "query", + "type": "string", + "description": "This identifies, by Azure AD client id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with object_id and msi_res_id.", + "required": false + }, + { + "name": "object_id", + "in": "query", + "type": "string", + "description": "This identifies, by Azure AD object id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with client_id and msi_res_id.", + "required": false + }, + { + "name": "msi_res_id", + "in": "query", + "type": "string", + "description": "This identifies, by urlencoded ARM resource id, a specific explicit identity to use when authenticating to Azure AD. Mutually exclusive with client_id and object_id.", + "required": false + }, + { + "name": "authority", + "in": "query", + "type": "string", + "description": "This indicates the authority to request AAD tokens from. Defaults to the known authority of the identity to be used.", + "required": false + }, + { + "name": "bypass_cache", + "in": "query", + "type": "string", + "enum": [ + "true" + ], + "description": "If provided, the value must be 'true'. This indicates to the server that the token must be retrieved from Azure AD and cannot be retrieved from an internal cache.", + "required": false + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/TokenResponse" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Identity Token for the VM": { + "$ref": "./examples/getidentitytoken.json" + } + } + } + }, + "/identity/info": { + "get": { + "tags": [ + "Get metadata information" + ], + "summary": "Get information about AAD Metadata", + "description": "", + "operationId": "getInfo", + "produces": [ + "application/json" + ], + "parameters": [ + { + "name": "Metadata", + "in": "header", + "type": "string", + "enum": [ + "true" + ], + "description": "This must be set to 'true'.", + "required": true + }, + { + "name": "api-version", + "in": "query", + "type": "string", + "enum": [ + "2018-02-01", + "2018-04-02", + "2018-10-01" + ], + "description": "This is the API version to use.", + "required": true + } + ], + "responses": { + "200": { + "description": "Successful operation", + "schema": { + "$ref": "#/definitions/InfoResponse" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + } + }, + "x-ms-examples": { + "Get Identity Info for the VM": { + "$ref": "./examples/getidentityinfo.json" + } + } + } + } + }, + "definitions": { + "compute": { + "type": "object", + "properties": { + "azEnvironment": { + "type": "string", + "description": "This is the name of the environment in which the VM is running." + }, + "location": { + "type": "string", + "format": "string", + "description": "This is the Azure Region in which the VM is running." + }, + "name": { + "type": "string", + "format": "string", + "description": "This is the name of the VM." + }, + "offer": { + "type": "string", + "format": "string", + "description": "This is the offer information for the VM image. This value is only present for images deployed from the Azure Image Gallery." + }, + "osType": { + "type": "string", + "format": "string", + "description": "This value indicates the type of OS the VM is running, either Linux or Windows." + }, + "placementGroupId": { + "type": "string", + "format": "string", + "description": "This is the placement group of your Virtual Machine Scale Set." + }, + "plan": { + "type": "object", + "$ref": "#/definitions/planProperties" + }, + "publicKeys": { + "type": "array", + "items": { + "$ref": "#/definitions/publicKeysProperties" + }, + "description": "This is information about the SSH certificate" + }, + "platformFaultDomain": { + "type": "string", + "format": "string", + "description": "This is the fault domain in which the VM." + }, + "platformUpdateDomain": { + "type": "string", + "format": "string", + "description": "This is the update domain in which the VM." + }, + "publisher": { + "type": "string", + "format": "string", + "description": "This is the publisher of the VM image." + }, + "resourceGroupName": { + "type": "string", + "format": "string", + "description": "This is the resource group for the VM." + }, + "sku": { + "type": "string", + "format": "string", + "description": "This is the specific SKU for the VM image." + }, + "subscriptionId": { + "type": "string", + "format": "string", + "description": "This is the Azure subscription for the VM." + }, + "tags": { + "type": "string", + "format": "string", + "description": "This is the list of tags for your VM." + }, + "version": { + "type": "string", + "format": "string", + "description": "This is the version of the VM image." + }, + "vmId": { + "type": "string", + "format": "string", + "description": "This is the unique identifier for the VM." + }, + "vmScaleSetName": { + "type": "string", + "format": "string", + "description": "This is the resource name of the VMSS." + }, + "vmSize": { + "type": "string", + "format": "string", + "description": "This is the size of the VM." + }, + "zone": { + "type":"string", + "description":"This is the availability zone of the VM." + } + }, + "description": "Compute Metadata" + }, + "network": { + "type": "object", + "properties": { + "interface": { + "type":"array", + "items": { + "type": "object", + "$ref": "#/definitions/networkInterface" + } + } + }, + "description": "Network Metadata" + }, + "networkInterface": { + "type": "object", + "properties": { + "ipv4": { + "type":"object", + "properties": { + "ipAddress": { + "type":"array", + "items": { + "type": "object", + "$ref":"#/definitions/ipv4Properties" + } + }, + "subnet": { + "type":"array", + "items": { + "type": "object", + "$ref": "#/definitions/subnetProperties" + } + } + } + }, + "ipv6": { + "type":"object", + "properties": { + "ipAddress": { + "type":"array", + "items": { + "type": "object", + "$ref":"#/definitions/ipv6Properties" + } + } + } + }, + "macAddress": { + "type":"string", + "description":"This is the MAC address of the interface." + } + } + }, + "planProperties": { + "type": "object", + "properties": { + "name": { + "type": "string", + "description": "This is the Plan ID." + }, + "publisher": { + "type": "string", + "description": "This is the publisher ID." + }, + "product": { + "type": "string", + "description": "This is the product of the image from the Marketplace." + } + } + }, + "publicKeysProperties": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "This specifies the full path on the VM where the SSH public key is stored." + }, + "keyData": { + "type": "string", + "description": "This is the SSH public key certificate used to authenticate with the VM." + } + } + }, + "ipv4Properties": { + "type": "object", + "properties": { + "privateIpAddress": { + "type":"string", + "description":"This is the private IP address assigned to the interface." + }, + "publicIpAddress": { + "type":"string", + "description":"This is the public IP address assigned to the interface." + } + } + }, + "ipv6Properties": { + "type": "object", + "properties": { + "privateIpAddress": { + "type":"string", + "description":"This is the private IPV6 address assigned to the interface." + } + } + }, + "subnetProperties": { + "type": "object", + "properties": { + "address": { + "type":"string", + "description":"This is the address range of the subnet." + }, + "prefix": { + "type":"string", + "description":"This is the prefix of the subnet." + } + } + }, + "instance": { + "type": "object", + "properties": { + "compute": { + "$ref": "#/definitions/compute", + "description": "Compute Metadata" + }, + "network": { + "$ref": "#/definitions/network", + "description": "Network Metadata" + } + } + }, + "attested": { + "type": "object", + "properties": { + "signature": { + "type": "string", + "description": "This is the encoded string containing the VM ID, plan information, and nonce value." + }, + "encoding": { + "type": "string", + "description": "This is the encoding scheme of the signature." + } + } + }, + "ErrorResponse": { + "type": "object", + "properties": { + "error": { + "type": "string", + "description": "Error code", + "enum": [ + "invalid_request", + "unauthorize_client", + "access_denied", + "unsupported_response_type", + "invalid_scope", + "server_error", + "service_unavailable", + "bad_request", + "forbidden", + "not_found", + "method_not_allowed", + "too_many_requests" + ] + }, + "error_description": { + "type": "string", + "description": "Error description" + } + } + }, + "TokenResponse": { + "type": "object", + "properties": { + "access_token": { + "type": "string", + "description": "This is the requested access token. The app can use this token to authenticate to the sink resource." + }, + "expires_in": { + "type": "string", + "description": "This is how long the access token is valid (in seconds)." + }, + "expires_on": { + "type": "string", + "description": "This is the time when the access token expires. The date is represented as the number of seconds from 1970-01-01T0:0:0Z UTC until the expiration time. This value is used to determine the lifetime of cached tokens." + }, + "ext_expires_in": { + "type": "string", + "description": "This indicates the extended lifetime of the token." + }, + "not_before": { + "type": "string", + "description": "This is the time when the access token becomes effective. The date is represented as the number of seconds from 1970-01-01T0:0:0Z UTC until the expiration time." + }, + "resource": { + "type": "string", + "description": "This is the app ID URI of the sink resource." + }, + "token_type": { + "type": "string", + "description": "This indicates the token type value." + }, + "client_id": { + "type": "string", + "description": "This is the client_id specified in the request, if any." + }, + "object_id": { + "type": "string", + "description": "This is the object_id specified in the request, if any." + }, + "msi_res_id": { + "type": "string", + "description": "This is the msi_res_id specified in the request, if any." + } + } + }, + "InfoResponse": { + "type": "object", + "properties": { + "tenantId": { + "type": "string", + "description": "This is the AAD tenantId of the identity of the caller." + } + } + } + } +} \ No newline at end of file diff --git a/specification/imds/resource-manager/readme.md b/specification/imds/resource-manager/readme.md new file mode 100644 index 000000000000..34ce21bdae72 --- /dev/null +++ b/specification/imds/resource-manager/readme.md @@ -0,0 +1,54 @@ +# Instance Metadata Service +> see https://aka.ms/autorest + +This is the AutoRest configuration file for Instance Metadata Service. + +## Getting Started +To build the SDKs for Instance Metadata Service, simply install AutoRest via `npm` (`npm install -g autorest`) and then run: +> `autorest readme.md` + +To see additional help and options, run: +> `autorest --help` + +For other options on installation see [Installing AutoRest](https://aka.ms/autorest/install) on the AutoRest github page. + +--- + +## Configuration + +### Basic Information +These are the global settings for the Instance Metadata Service API. + +``` yaml +openapi-type: arm +azure-arm: true +tag: package-2018-05 +input-file: +- Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +output-folder: ./Generated +``` + + +--- +# Code Generation + +## C# + +These settings apply only when `--csharp` is specified on the command line. + +``` yaml $(csharp) +csharp: + azure-arm: true + output-folder: ./Generated + clear-output-folder: true +``` + +## Swagger to SDK + +This section describes what SDK should be generated by the automatic system. +This is not used by Autorest itself. + +``` yaml $(swagger-to-sdk) +swagger-to-sdk: + - repo: azure-sdk-for-python +``` diff --git a/specification/imds/resource-manager/readme.python.md b/specification/imds/resource-manager/readme.python.md new file mode 100644 index 000000000000..0b932c9287e1 --- /dev/null +++ b/specification/imds/resource-manager/readme.python.md @@ -0,0 +1,27 @@ +## Python + +These settings apply only when `--python` is specified on the command line. +Please also specify `--python-sdks-folder=`. +Use `--python-mode=update` if you already have a setup.py and just want to update the code itself. + +``` yaml $(python) +python-mode: create +python: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + payload-flattening-threshold: 2 + namespace: azure.mgmt.imds + package-name: azure-mgmt-imds + package-version: 0.1.0 + clear-output-folder: true +``` +``` yaml $(python) && $(python-mode) == 'update' +python: + no-namespace-folders: true + output-folder: $(python-sdks-folder)/azure-mgmt-imds/azure/mgmt/imds +``` +``` yaml $(python) && $(python-mode) == 'create' +python: + basic-setup-py: true + output-folder: $(python-sdks-folder)/azure-mgmt-imds +``` \ No newline at end of file From 492796f302c3eb48db0bfe1919a130444bda42be Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 26 Nov 2018 13:45:40 -0800 Subject: [PATCH 02/15] Instance Metadata Service: Updates -Removed erroneous format tags -Added security section --- .../stable/2018-10-01/imds.json | 46 +++++++++++-------- 1 file changed, 26 insertions(+), 20 deletions(-) diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index b60733405db8..b4c035798cba 100644 --- a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -2,13 +2,13 @@ "swagger": "2.0", "info": { "title": "InstanceMetadataClient", - "description": "The Azure Instance Metadata Client.", + "description": "The Azure Instance Metadata Client", "version": "2018-10-01" }, "host": "169.254.169.254", "basePath": "/metadata", "schemes": [ - "http" + "https" ], "consumes": [ "application/json" @@ -16,10 +16,28 @@ "produces": [ "application/json" ], + "security": [ + { + "azure_auth": [ + "user_impersonation" + ] + } + ], + "securityDefinitions": { + "azure_auth": { + "type": "oauth2", + "authorizationUrl": "https://login.microsoftonline.com/common/oauth2/authorize", + "flow": "implicit", + "description": "Azure Active Directory OAuth2 Flow", + "scopes": { + "user_impersonation": "impersonate your user account" + } + } + }, "paths": { "/instance": { "get": { - "operationId": "instance", + "operationId": "getInstance", "description": "Get Instance Metadata for the Virtual Machine.", "parameters": [ { @@ -99,7 +117,7 @@ }, "/attested/document": { "get": { - "operationId": "attested", + "operationId": "getAttested", "description": "Get Attested Data for the Virtual Machine.", "parameters": [ { @@ -400,27 +418,22 @@ }, "location": { "type": "string", - "format": "string", "description": "This is the Azure Region in which the VM is running." }, "name": { "type": "string", - "format": "string", "description": "This is the name of the VM." }, "offer": { "type": "string", - "format": "string", "description": "This is the offer information for the VM image. This value is only present for images deployed from the Azure Image Gallery." }, "osType": { "type": "string", - "format": "string", "description": "This value indicates the type of OS the VM is running, either Linux or Windows." }, "placementGroupId": { "type": "string", - "format": "string", "description": "This is the placement group of your Virtual Machine Scale Set." }, "plan": { @@ -436,57 +449,50 @@ }, "platformFaultDomain": { "type": "string", - "format": "string", "description": "This is the fault domain in which the VM." }, "platformUpdateDomain": { "type": "string", - "format": "string", "description": "This is the update domain in which the VM." }, + "provider": { + "type": "string", + "description": "This is the provider of the VM." + }, "publisher": { "type": "string", - "format": "string", "description": "This is the publisher of the VM image." }, "resourceGroupName": { "type": "string", - "format": "string", "description": "This is the resource group for the VM." }, "sku": { "type": "string", - "format": "string", "description": "This is the specific SKU for the VM image." }, "subscriptionId": { "type": "string", - "format": "string", "description": "This is the Azure subscription for the VM." }, "tags": { "type": "string", - "format": "string", "description": "This is the list of tags for your VM." }, "version": { "type": "string", - "format": "string", "description": "This is the version of the VM image." }, "vmId": { "type": "string", - "format": "string", "description": "This is the unique identifier for the VM." }, "vmScaleSetName": { "type": "string", - "format": "string", "description": "This is the resource name of the VMSS." }, "vmSize": { "type": "string", - "format": "string", "description": "This is the size of the VM." }, "zone": { From 5ed5488357aeea3112a442904b3c227fbc9403a7 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 26 Nov 2018 13:54:08 -0800 Subject: [PATCH 03/15] Instance Metadata Service: Updates -Moved to imds/data-plane from imds/resource-provider --- .../stable/2018-10-01/examples/getattesteddata.json | 0 .../stable/2018-10-01/examples/getidentityinfo.json | 0 .../stable/2018-10-01/examples/getidentitytoken.json | 0 .../stable/2018-10-01/examples/getinstancemetadata.json | 0 .../Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json | 0 specification/imds/{resource-manager => data-plane}/readme.md | 0 .../imds/{resource-manager => data-plane}/readme.python.md | 0 7 files changed, 0 insertions(+), 0 deletions(-) rename specification/imds/{resource-manager => data-plane}/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json (100%) rename specification/imds/{resource-manager => data-plane}/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json (100%) rename specification/imds/{resource-manager => data-plane}/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json (100%) rename specification/imds/{resource-manager => data-plane}/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json (100%) rename specification/imds/{resource-manager => data-plane}/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json (100%) rename specification/imds/{resource-manager => data-plane}/readme.md (100%) rename specification/imds/{resource-manager => data-plane}/readme.python.md (100%) diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json similarity index 100% rename from specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json rename to specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json similarity index 100% rename from specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json rename to specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentityinfo.json diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json similarity index 100% rename from specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json rename to specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getidentitytoken.json diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json similarity index 100% rename from specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json rename to specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json diff --git a/specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json similarity index 100% rename from specification/imds/resource-manager/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json rename to specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json diff --git a/specification/imds/resource-manager/readme.md b/specification/imds/data-plane/readme.md similarity index 100% rename from specification/imds/resource-manager/readme.md rename to specification/imds/data-plane/readme.md diff --git a/specification/imds/resource-manager/readme.python.md b/specification/imds/data-plane/readme.python.md similarity index 100% rename from specification/imds/resource-manager/readme.python.md rename to specification/imds/data-plane/readme.python.md From 8a09dad819f7b9e8bc609535ab247436746a1529 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 26 Nov 2018 14:39:33 -0800 Subject: [PATCH 04/15] Instance Metadata Service: Added language .md files --- .../imds/data-plane/readme.csharp.md | 20 +++++++++++++++++++ specification/imds/data-plane/readme.go.md | 10 ++++++++++ .../imds/data-plane/readme.nodejs.md | 16 +++++++++++++++ .../imds/data-plane/readme.python.md | 8 ++++---- specification/imds/data-plane/readme.ruby.md | 10 ++++++++++ .../imds/data-plane/readme.typescript.md | 14 +++++++++++++ 6 files changed, 74 insertions(+), 4 deletions(-) create mode 100644 specification/imds/data-plane/readme.csharp.md create mode 100644 specification/imds/data-plane/readme.go.md create mode 100644 specification/imds/data-plane/readme.nodejs.md create mode 100644 specification/imds/data-plane/readme.ruby.md create mode 100644 specification/imds/data-plane/readme.typescript.md diff --git a/specification/imds/data-plane/readme.csharp.md b/specification/imds/data-plane/readme.csharp.md new file mode 100644 index 000000000000..20481e7f6788 --- /dev/null +++ b/specification/imds/data-plane/readme.csharp.md @@ -0,0 +1,20 @@ +# C# Storage + +> see https://aka.ms/autorest + +This is the AutoRest configuration file for IMDS. + +## Common C# Settings + +``` yaml $(csharp) +csharp: + azure-arm: true + license-header: MICROSOFT_MIT_NO_VERSION + clear-output-folder: true +``` + +``` yaml $(csharp) && !$(multiapi) && !$(profile) +payload-flattening-threshold: 2 +namespace: Microsoft.Azure.InstanceMetadataService +output-folder: $(csharp-sdks-folder)/Azure/InstanceMetadataService/Generated +``` diff --git a/specification/imds/data-plane/readme.go.md b/specification/imds/data-plane/readme.go.md new file mode 100644 index 000000000000..a805b79cf2ba --- /dev/null +++ b/specification/imds/data-plane/readme.go.md @@ -0,0 +1,10 @@ +## Go + +These settings apply only when `--go` is specified on the command line. + +``` yaml $(go) +go: + license-header: MICROSOFT_APACHE_NO_VERSION + namespace: storage + clear-output-folder: true +``` diff --git a/specification/imds/data-plane/readme.nodejs.md b/specification/imds/data-plane/readme.nodejs.md new file mode 100644 index 000000000000..744df7b8af95 --- /dev/null +++ b/specification/imds/data-plane/readme.nodejs.md @@ -0,0 +1,16 @@ +## Node.js + +These settings apply only when `--nodejs` is specified on the command line. +Please also specify `--node-sdks-folder=`. + +``` yaml $(nodejs) +nodejs: + azure-arm: true + package-name: azure-imds + output-folder: $(node-sdks-folder)/lib/services/imds + payload-flattening-threshold: 2 + override-client-name: IMDSClient + generate-license-txt: true + generate-package-json: true + generate-readme-md: false +``` diff --git a/specification/imds/data-plane/readme.python.md b/specification/imds/data-plane/readme.python.md index 0b932c9287e1..daf2ae712b71 100644 --- a/specification/imds/data-plane/readme.python.md +++ b/specification/imds/data-plane/readme.python.md @@ -10,18 +10,18 @@ python: azure-arm: true license-header: MICROSOFT_MIT_NO_VERSION payload-flattening-threshold: 2 - namespace: azure.mgmt.imds - package-name: azure-mgmt-imds + namespace: azure.imds + package-name: azure-imds package-version: 0.1.0 clear-output-folder: true ``` ``` yaml $(python) && $(python-mode) == 'update' python: no-namespace-folders: true - output-folder: $(python-sdks-folder)/azure-mgmt-imds/azure/mgmt/imds + output-folder: $(python-sdks-folder)/azure-imds/azure/imds ``` ``` yaml $(python) && $(python-mode) == 'create' python: basic-setup-py: true - output-folder: $(python-sdks-folder)/azure-mgmt-imds + output-folder: $(python-sdks-folder)/azure-imds ``` \ No newline at end of file diff --git a/specification/imds/data-plane/readme.ruby.md b/specification/imds/data-plane/readme.ruby.md new file mode 100644 index 000000000000..ef7d2c898277 --- /dev/null +++ b/specification/imds/data-plane/readme.ruby.md @@ -0,0 +1,10 @@ +## Ruby + +These settings apply only when `--ruby` is specified on the command line. + +``` yaml +package-name: azure_imds +package-version: "0.16.3" +azure-arm: true +``` + diff --git a/specification/imds/data-plane/readme.typescript.md b/specification/imds/data-plane/readme.typescript.md new file mode 100644 index 000000000000..cd79798fce9c --- /dev/null +++ b/specification/imds/data-plane/readme.typescript.md @@ -0,0 +1,14 @@ +## TypeScript + +These settings apply only when `--typescript` is specified on the command line. +Please also specify `--typescript-sdks-folder=`. + +``` yaml $(typescript) +typescript: + azure-arm: true + package-name: "@azure/imds" + output-folder: "$(typescript-sdks-folder)/packages/@azure/imds" + payload-flattening-threshold: 2 + override-client-name: IMDSClient + generate-metadata: true +``` From 0773756e2fd45434e049d3b58ad16951bc676ca9 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 26 Nov 2018 15:20:17 -0800 Subject: [PATCH 05/15] Instance Metadata Service: Updated ErrorResponse -Removed individual error codes from operations --- .../stable/2018-10-01/imds.json | 165 ++---------------- 1 file changed, 16 insertions(+), 149 deletions(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index b4c035798cba..2588d9795307 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -8,7 +8,7 @@ "host": "169.254.169.254", "basePath": "/metadata", "schemes": [ - "https" + "http" ], "consumes": [ "application/json" @@ -65,44 +65,8 @@ "$ref": "#/definitions/instance" } }, - "400": { - "description": "Invalid request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "405": { - "description": "Method not allowed", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "429": { - "description": "Too many requests", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "503": { - "description": "Service unavailable", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Server error", + "default": { + "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ErrorResponse" } @@ -152,44 +116,8 @@ "$ref": "#/definitions/attested" } }, - "400": { - "description": "Invalid request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "403": { - "description": "Forbidden", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "405": { - "description": "Method not allowed", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "429": { - "description": "Too many requests", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "503": { - "description": "Service unavailable", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Server error", + "default": { + "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ErrorResponse" } @@ -289,32 +217,8 @@ "$ref": "#/definitions/TokenResponse" } }, - "400": { - "description": "Invalid request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "405": { - "description": "Method not allowed", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "429": { - "description": "Too many requests", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Server error", + "default": { + "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ErrorResponse" } @@ -369,32 +273,8 @@ "$ref": "#/definitions/InfoResponse" } }, - "400": { - "description": "Invalid request", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "404": { - "description": "Not found", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "405": { - "description": "Method not allowed", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "429": { - "description": "Too many requests", - "schema": { - "$ref": "#/definitions/ErrorResponse" - } - }, - "500": { - "description": "Server error", + "default": { + "description": "Error response describing why the operation failed.", "schema": { "$ref": "#/definitions/ErrorResponse" } @@ -647,29 +527,16 @@ } }, "ErrorResponse": { + "description": "Describes the format of Error response.", "type": "object", "properties": { - "error": { - "type": "string", + "code": { "description": "Error code", - "enum": [ - "invalid_request", - "unauthorize_client", - "access_denied", - "unsupported_response_type", - "invalid_scope", - "server_error", - "service_unavailable", - "bad_request", - "forbidden", - "not_found", - "method_not_allowed", - "too_many_requests" - ] - }, - "error_description": { - "type": "string", - "description": "Error description" + "type": "string" + }, + "message": { + "description": "Error message indicating why the operation failed.", + "type": "string" } } }, From cba3965b1c467f62087c54339599691391df22f6 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Thu, 29 Nov 2018 11:52:12 -0800 Subject: [PATCH 06/15] Instance Metadata Service: Updates to Swagger -Created separate Identity error property -Updated descriptions and added them where necessary -Created parameters section and moved api-version and Metadata to it -Renamed operationIds --- .../2018-10-01/examples/getattesteddata.json | 23 +- .../examples/getinstancemetadata.json | 21 +- .../stable/2018-10-01/imds.json | 371 +++++++++++++----- 3 files changed, 281 insertions(+), 134 deletions(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json index 0c6ab44c69d7..f263d37ed78f 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getattesteddata.json @@ -1,7 +1,7 @@ { "parameters": { "api-version": "2018-10-01", - "nonce": "1111111111", + "nonce": "abcde12345", "Metadata": "true" }, "responses": { @@ -13,44 +13,37 @@ }, "400": { "body": { - "error": "invalid_request", - "error_description": "Bad request" + "error": "Bad request" } }, "403": { "body": { - "error": "forbidden", - "error_description": "Forbidden" + "error": "Forbidden" } }, "404": { "body": { - "error": "not_found", - "error_description": "Not found" + "error": "Not found" } }, "405": { "body": { - "error": "method_not_allowed", - "error_description": "Not allowed" + "error": "Not allowed" } }, "429": { "body": { - "error": "too_many_requests", - "error_description": "Too many requests" + "error": "Too many requests" } }, "503": { "body": { - "error": "service_unavailable", - "error_description": "Service unavailable" + "error": "Service unavailable" } }, "500": { "body": { - "error": "server_error", - "error_description": "Server error" + "error": "Server error" } } } diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json index ad77c31e8d85..c5f5cb36b8f3 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/examples/getinstancemetadata.json @@ -45,44 +45,37 @@ }, "400": { "body": { - "error": "invalid_request", - "error_description": "Bad request" + "error": "Bad request" } }, "403": { "body": { - "error": "forbidden", - "error_description": "Forbidden" + "error": "Forbidden" } }, "404": { "body": { - "error": "not_found", - "error_description": "Not found" + "error": "Not found" } }, "405": { "body": { - "error": "method_not_allowed", - "error_description": "Not allowed" + "error": "Not allowed" } }, "429": { "body": { - "error": "too_many_requests", - "error_description": "Too many requests" + "error": "Too many requests" } }, "503": { "body": { - "error": "service_unavailable", - "error_description": "Service unavailable" + "error": "Service unavailable" } }, "500": { "body": { - "error": "server_error", - "error_description": "Server error" + "error": "Server error" } } } diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 2588d9795307..3f54168349b3 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -37,32 +37,63 @@ "paths": { "/instance": { "get": { - "operationId": "getInstance", + "operationId": "Instance_GetMetadata", "description": "Get Instance Metadata for the Virtual Machine.", "parameters": [ { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "This is the version of API to invoke." + "$ref": "#/parameters/ApiVersionParameter" }, { - "name": "Metadata", - "in": "header", - "type": "string", - "enum": [ - "true" - ], - "description": "This must be set to 'true'.", - "required": true + "$ref": "#/parameters/MetadataParameter" } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/instance" + "$ref": "#/definitions/Instance" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "503": { + "description": "Service unavailable", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" } }, "default": { @@ -81,39 +112,70 @@ }, "/attested/document": { "get": { - "operationId": "getAttested", + "operationId": "Attested_GetDocument", "description": "Get Attested Data for the Virtual Machine.", "parameters": [ { - "name": "api-version", - "in": "query", - "required": true, - "type": "string", - "description": "This is the version of API to invoke." + "$ref": "#/parameters/ApiVersionParameter" }, { "name": "nonce", "in": "query", "required": false, "type": "string", - "description": "10-digit random number." + "description": "This is a string of up to 32 random alphanumeric characters." }, { - "name": "Metadata", - "in": "header", - "type": "string", - "enum": [ - "true" - ], - "description": "This must be set to 'true'.", - "required": true - } + "$ref": "#/parameters/MetadataParameter" + } ], "responses": { "200": { "description": "OK", "schema": { - "$ref": "#/definitions/attested" + "$ref": "#/definitions/Attested" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "403": { + "description": "Forbidden", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "503": { + "description": "Service unavailable", + "schema": { + "$ref": "#/definitions/ErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/ErrorResponse" } }, "default": { @@ -135,22 +197,14 @@ "tags": [ "Get token" ], - "summary": "Get a Token from Azure AD", - "description": "", - "operationId": "getToken", + "description": "Get a Token from Azure AD", + "operationId": "Identity_GetToken", "produces": [ "application/json" ], "parameters": [ { - "name": "Metadata", - "in": "header", - "type": "string", - "enum": [ - "true" - ], - "description": "This must be set to 'true'.", - "required": true + "$ref": "#/parameters/MetadataParameter" }, { "name": "resource", @@ -160,16 +214,7 @@ "required": true }, { - "name": "api-version", - "in": "query", - "type": "string", - "enum": [ - "2018-02-01", - "2018-04-02", - "2018-10-01" - ], - "description": "This is the API version to use.", - "required": true + "$ref": "#/parameters/ApiVersionParameter" }, { "name": "client_id", @@ -207,20 +252,54 @@ "true" ], "description": "If provided, the value must be 'true'. This indicates to the server that the token must be retrieved from Azure AD and cannot be retrieved from an internal cache.", - "required": false + "required": false, + "x-ms-enum": { + "name": "BypassCache", + "modelAsString": true + } } ], "responses": { "200": { "description": "Successful operation", "schema": { - "$ref": "#/definitions/TokenResponse" + "$ref": "#/definitions/IdentityTokenResponse" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "#/definitions/IdentityErrorResponse" } } }, @@ -236,47 +315,60 @@ "tags": [ "Get metadata information" ], - "summary": "Get information about AAD Metadata", - "description": "", - "operationId": "getInfo", + "description": "Get information about AAD Metadata", + "operationId": "Identity_GetInfo", "produces": [ "application/json" ], "parameters": [ { - "name": "Metadata", - "in": "header", - "type": "string", - "enum": [ - "true" - ], - "description": "This must be set to 'true'.", - "required": true + "$ref": "#/parameters/MetadataParameter" }, { - "name": "api-version", - "in": "query", - "type": "string", - "enum": [ - "2018-02-01", - "2018-04-02", - "2018-10-01" - ], - "description": "This is the API version to use.", - "required": true + "$ref": "#/parameters/ApiVersionParameter" } ], "responses": { "200": { "description": "Successful operation", "schema": { - "$ref": "#/definitions/InfoResponse" + "$ref": "#/definitions/IdentityInfoResponse" + } + }, + "400": { + "description": "Invalid request", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "404": { + "description": "Not found", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "405": { + "description": "Method not allowed", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "429": { + "description": "Too many requests", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" + } + }, + "500": { + "description": "Server error", + "schema": { + "$ref": "#/definitions/IdentityErrorResponse" } }, "default": { "description": "Error response describing why the operation failed.", "schema": { - "$ref": "#/definitions/ErrorResponse" + "$ref": "#/definitions/IdentityErrorResponse" } } }, @@ -289,7 +381,7 @@ } }, "definitions": { - "compute": { + "Compute": { "type": "object", "properties": { "azEnvironment": { @@ -318,12 +410,12 @@ }, "plan": { "type": "object", - "$ref": "#/definitions/planProperties" + "$ref": "#/definitions/PlanProperties" }, "publicKeys": { "type": "array", "items": { - "$ref": "#/definitions/publicKeysProperties" + "$ref": "#/definitions/PublicKeysProperties" }, "description": "This is information about the SSH certificate" }, @@ -382,20 +474,20 @@ }, "description": "Compute Metadata" }, - "network": { + "Network": { "type": "object", "properties": { "interface": { "type":"array", "items": { "type": "object", - "$ref": "#/definitions/networkInterface" + "$ref": "#/definitions/NetworkInterface" } } }, "description": "Network Metadata" }, - "networkInterface": { + "NetworkInterface": { "type": "object", "properties": { "ipv4": { @@ -405,14 +497,14 @@ "type":"array", "items": { "type": "object", - "$ref":"#/definitions/ipv4Properties" + "$ref":"#/definitions/Ipv4Properties" } }, "subnet": { "type":"array", "items": { "type": "object", - "$ref": "#/definitions/subnetProperties" + "$ref": "#/definitions/SubnetProperties" } } } @@ -424,7 +516,7 @@ "type":"array", "items": { "type": "object", - "$ref":"#/definitions/ipv6Properties" + "$ref":"#/definitions/Ipv6Properties" } } } @@ -435,8 +527,9 @@ } } }, - "planProperties": { + "PlanProperties": { "type": "object", + "description": "This contains the data about the plan.", "properties": { "name": { "type": "string", @@ -452,8 +545,9 @@ } } }, - "publicKeysProperties": { + "PublicKeysProperties": { "type": "object", + "description": "This contains the data about the public key.", "properties": { "path": { "type": "string", @@ -465,8 +559,9 @@ } } }, - "ipv4Properties": { + "Ipv4Properties": { "type": "object", + "description": "This contains the IPv4 properties.", "properties": { "privateIpAddress": { "type":"string", @@ -478,8 +573,9 @@ } } }, - "ipv6Properties": { + "Ipv6Properties": { "type": "object", + "description": "This contains the IPv6 properties.", "properties": { "privateIpAddress": { "type":"string", @@ -487,8 +583,9 @@ } } }, - "subnetProperties": { + "SubnetProperties": { "type": "object", + "description": "This contains the properties of the subnet.", "properties": { "address": { "type":"string", @@ -500,21 +597,23 @@ } } }, - "instance": { + "Instance": { "type": "object", + "description": "This is the response from the Instance_GetMetadata operation.", "properties": { "compute": { - "$ref": "#/definitions/compute", + "$ref": "#/definitions/Compute", "description": "Compute Metadata" }, "network": { - "$ref": "#/definitions/network", + "$ref": "#/definitions/Network", "description": "Network Metadata" } } }, - "attested": { + "Attested": { "type": "object", + "description": "This is the response from the Attested_GetDocument operation.", "properties": { "signature": { "type": "string", @@ -527,21 +626,50 @@ } }, "ErrorResponse": { - "description": "Describes the format of Error response.", + "description": "This is the response from an operation in the case an error occurs.", "type": "object", "properties": { - "code": { - "description": "Error code", - "type": "string" - }, - "message": { + "error": { "description": "Error message indicating why the operation failed.", "type": "string" } } }, - "TokenResponse": { + "IdentityErrorResponse": { + "type": "object", + "description": "This is the response from an Identity operation in the case an error occurs.", + "properties": { + "error": { + "type": "string", + "description": "Error code", + "enum": [ + "invalid_request", + "unauthorize_client", + "access_denied", + "unsupported_response_type", + "invalid_scope", + "server_error", + "service_unavailable", + "bad_request", + "forbidden", + "not_found", + "method_not_allowed", + "too_many_requests" + ], + "x-ms-enum": { + "name": "Error", + "modelAsString": true + } + }, + "error_description": { + "type": "string", + "description": "Error message indicating why the operation failed." + } + } + }, + "IdentityTokenResponse": { "type": "object", + "description": "This is the response from the Identity_GetToken operation.", "properties": { "access_token": { "type": "string", @@ -585,8 +713,9 @@ } } }, - "InfoResponse": { + "IdentityInfoResponse": { "type": "object", + "description": "This is the response from the Identity_GetInfo operation.", "properties": { "tenantId": { "type": "string", @@ -594,5 +723,37 @@ } } } + }, + "parameters": { + "ApiVersionParameter": { + "name": "api-version", + "in": "query", + "type": "string", + "enum": [ + "2018-02-01", + "2018-04-02", + "2018-10-01" + ], + "description": "This is the API version to use.", + "required": true, + "x-ms-enum": { + "name": "ApiVersion", + "modelAsString": true + } + }, + "MetadataParameter": { + "name": "Metadata", + "in": "header", + "type": "string", + "enum": [ + "true" + ], + "description": "This must be set to 'true'.", + "required": true, + "x-ms-enum": { + "name": "Metadata", + "modelAsString": true + } + } } } \ No newline at end of file From 630659c4d92ac8df01afeb6ad8b6c97a34efdd19 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Thu, 29 Nov 2018 12:05:17 -0800 Subject: [PATCH 07/15] Added x-ms-parameter-location to Metadata parameter --- .../stable/2018-10-01/imds.json | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 3f54168349b3..02bc74b72366 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -753,7 +753,8 @@ "x-ms-enum": { "name": "Metadata", "modelAsString": true - } + }, + "x-ms-parameter-location": "method" } } } \ No newline at end of file From 5873893a90ffc8198f435ef05a85286e09b00a62 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Fri, 14 Dec 2018 12:44:29 -0800 Subject: [PATCH 08/15] -Minor property name changes -Removed previous API versions from enum --- .../stable/2018-10-01/imds.json | 15 +++++---------- 1 file changed, 5 insertions(+), 10 deletions(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 02bc74b72366..7fff26c47f23 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -37,7 +37,7 @@ "paths": { "/instance": { "get": { - "operationId": "Instance_GetMetadata", + "operationId": "Instances_GetMetadata", "description": "Get Instance Metadata for the Virtual Machine.", "parameters": [ { @@ -133,7 +133,7 @@ "200": { "description": "OK", "schema": { - "$ref": "#/definitions/Attested" + "$ref": "#/definitions/AttestedData" } }, "400": { @@ -489,6 +489,7 @@ }, "NetworkInterface": { "type": "object", + "description": "This contains data about the network interface.", "properties": { "ipv4": { "type":"object", @@ -611,13 +612,13 @@ } } }, - "Attested": { + "AttestedData": { "type": "object", "description": "This is the response from the Attested_GetDocument operation.", "properties": { "signature": { "type": "string", - "description": "This is the encoded string containing the VM ID, plan information, and nonce value." + "description": "This is the encoded string containing the VM ID, plan information, public key, timestamp, and nonce value." }, "encoding": { "type": "string", @@ -730,8 +731,6 @@ "in": "query", "type": "string", "enum": [ - "2018-02-01", - "2018-04-02", "2018-10-01" ], "description": "This is the API version to use.", @@ -750,10 +749,6 @@ ], "description": "This must be set to 'true'.", "required": true, - "x-ms-enum": { - "name": "Metadata", - "modelAsString": true - }, "x-ms-parameter-location": "method" } } From 54d9e4376b4348d480402077ae229a83c64acf8a Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Fri, 14 Dec 2018 15:28:59 -0800 Subject: [PATCH 09/15] -Fixed a typo --- .../stable/2018-10-01/imds.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 7fff26c47f23..37bdd8eed56f 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -645,7 +645,7 @@ "description": "Error code", "enum": [ "invalid_request", - "unauthorize_client", + "unauthorized_client", "access_denied", "unsupported_response_type", "invalid_scope", From 2ae5a326c98e9876767b9dbdb808eb0848760d09 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 17 Dec 2018 22:45:03 +0000 Subject: [PATCH 10/15] -Added missing descriptions --- .../stable/2018-10-01/imds.json | 10 +++++++++- 1 file changed, 9 insertions(+), 1 deletion(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 37bdd8eed56f..183aa506a1de 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -8,7 +8,7 @@ "host": "169.254.169.254", "basePath": "/metadata", "schemes": [ - "http" + "https" ], "consumes": [ "application/json" @@ -410,6 +410,7 @@ }, "plan": { "type": "object", + "description": "This contains the data about the plan.", "$ref": "#/definitions/PlanProperties" }, "publicKeys": { @@ -479,6 +480,7 @@ "properties": { "interface": { "type":"array", + "description": "This contains data about the network interface.", "items": { "type": "object", "$ref": "#/definitions/NetworkInterface" @@ -496,15 +498,19 @@ "properties": { "ipAddress": { "type":"array", + "description": "This is the IP address", "items": { "type": "object", + "description": "This contains the IPv4 properties.", "$ref":"#/definitions/Ipv4Properties" } }, "subnet": { "type":"array", + "description": "This is the subnet", "items": { "type": "object", + "description": "This contains the subnet properties.", "$ref": "#/definitions/SubnetProperties" } } @@ -515,8 +521,10 @@ "properties": { "ipAddress": { "type":"array", + "description": "This is the IP address", "items": { "type": "object", + "description": "This contains the IPv6 properties.", "$ref":"#/definitions/Ipv6Properties" } } From 29064076aa8c72a9b0a06dda44a65b95ad2f408f Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Mon, 17 Dec 2018 22:58:16 +0000 Subject: [PATCH 11/15] -Added more missing descriptions --- .../stable/2018-10-01/imds.json | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json index 183aa506a1de..ecd501259644 100644 --- a/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json +++ b/specification/imds/data-plane/Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json @@ -495,6 +495,7 @@ "properties": { "ipv4": { "type":"object", + "description": "This contains the IPv4 address.", "properties": { "ipAddress": { "type":"array", @@ -518,6 +519,7 @@ }, "ipv6": { "type":"object", + "description": "This contains the IPv6 address.", "properties": { "ipAddress": { "type":"array", @@ -588,7 +590,7 @@ "properties": { "privateIpAddress": { "type":"string", - "description":"This is the private IPV6 address assigned to the interface." + "description":"This is the private IPv6 address assigned to the interface." } } }, From 723f42308b1b96f7ba84215cd2dc5843d8c26538 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Wed, 19 Dec 2018 17:58:59 +0000 Subject: [PATCH 12/15] -Changed openapi type to data-plane --- specification/imds/data-plane/readme.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/specification/imds/data-plane/readme.md b/specification/imds/data-plane/readme.md index 34ce21bdae72..f1cfe392de7a 100644 --- a/specification/imds/data-plane/readme.md +++ b/specification/imds/data-plane/readme.md @@ -20,7 +20,7 @@ For other options on installation see [Installing AutoRest](https://aka.ms/autor These are the global settings for the Instance Metadata Service API. ``` yaml -openapi-type: arm +openapi-type: data-plane azure-arm: true tag: package-2018-05 input-file: From 617b32ad20c510e701daeb56e16e1926f2c2f999 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Wed, 19 Dec 2018 23:05:58 +0000 Subject: [PATCH 13/15] -Added DefinitionsPropertiesNamesCamelCase suppression to readme --- specification/imds/data-plane/readme.md | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/specification/imds/data-plane/readme.md b/specification/imds/data-plane/readme.md index f1cfe392de7a..e8adf896802b 100644 --- a/specification/imds/data-plane/readme.md +++ b/specification/imds/data-plane/readme.md @@ -28,6 +28,25 @@ input-file: output-folder: ./Generated ``` +## Suppression + ``` yaml + directive: + - suppress: DefinitionsPropertiesNamesCamelCase + reason: The following properties follow the Oath2 spec, which does not use camelCase. + from: Microsoft.InstanceMetadataService/stable/2018-10-01/imds.json + where: + - $.definitions.IdentityTokenResponse.properties.access_token + - $.definitions.IdentityTokenResponse.properties.expires_in + - $.definitions.IdentityTokenResponse.properties.expires_on + - $.definitions.IdentityTokenResponse.properties.ext_expires_in + - $.definitions.IdentityTokenResponse.properties.not_before + - $.definitions.IdentityTokenResponse.properties.resource + - $.definitions.IdentityTokenResponse.properties.token_type + - $.definitions.IdentityTokenResponse.properties.client_id + - $.definitions.IdentityTokenResponse.properties.object_id + - $.definitions.IdentityTokenResponse.properties.msi_res_id + + ``` --- # Code Generation From 4e92a02d3101628d7995471fb4662173443aca31 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Wed, 19 Dec 2018 23:13:42 +0000 Subject: [PATCH 14/15] -Forgot one camelcase suppression --- specification/imds/data-plane/readme.md | 1 + 1 file changed, 1 insertion(+) diff --git a/specification/imds/data-plane/readme.md b/specification/imds/data-plane/readme.md index e8adf896802b..50d415246801 100644 --- a/specification/imds/data-plane/readme.md +++ b/specification/imds/data-plane/readme.md @@ -45,6 +45,7 @@ output-folder: ./Generated - $.definitions.IdentityTokenResponse.properties.client_id - $.definitions.IdentityTokenResponse.properties.object_id - $.definitions.IdentityTokenResponse.properties.msi_res_id + - $.definitions.IdentityErrorResponse.properties.error_description ``` From 5887517eada83ef9490614894ab3d4182ce603f9 Mon Sep 17 00:00:00 2001 From: Rich Franklin Date: Wed, 19 Dec 2018 23:19:10 +0000 Subject: [PATCH 15/15] -Removed a newline --- specification/imds/data-plane/readme.md | 1 - 1 file changed, 1 deletion(-) diff --git a/specification/imds/data-plane/readme.md b/specification/imds/data-plane/readme.md index 50d415246801..246faba00e21 100644 --- a/specification/imds/data-plane/readme.md +++ b/specification/imds/data-plane/readme.md @@ -46,7 +46,6 @@ output-folder: ./Generated - $.definitions.IdentityTokenResponse.properties.object_id - $.definitions.IdentityTokenResponse.properties.msi_res_id - $.definitions.IdentityErrorResponse.properties.error_description - ``` ---