# AppApiAuthenticator
## Contents
- [AppIdNotFoundException](#T-AppApiAuthenticator-Server-AppIdNotFoundException 'AppApiAuthenticator.Server.AppIdNotFoundException')
- [#ctor()](#M-AppApiAuthenticator-Server-AppIdNotFoundException-#ctor 'AppApiAuthenticator.Server.AppIdNotFoundException.#ctor')
- [#ctor(message)](#M-AppApiAuthenticator-Server-AppIdNotFoundException-#ctor-System-String- 'AppApiAuthenticator.Server.AppIdNotFoundException.#ctor(System.String)')
- [#ctor(message,inner)](#M-AppApiAuthenticator-Server-AppIdNotFoundException-#ctor-System-String,System-Exception- 'AppApiAuthenticator.Server.AppIdNotFoundException.#ctor(System.String,System.Exception)')
- [Authorizor](#T-AppApiAuthenticator-Client-Authorizor 'AppApiAuthenticator.Client.Authorizor')
- [#ctor(appId,appKey)](#M-AppApiAuthenticator-Client-Authorizor-#ctor-System-String,System-String- 'AppApiAuthenticator.Client.Authorizor.#ctor(System.String,System.String)')
- [appId](#F-AppApiAuthenticator-Client-Authorizor-appId 'AppApiAuthenticator.Client.Authorizor.appId')
- [appKey](#F-AppApiAuthenticator-Client-Authorizor-appKey 'AppApiAuthenticator.Client.Authorizor.appKey')
- [generateHeader(method,customSig)](#M-AppApiAuthenticator-Client-Authorizor-generateHeader-AppApiAuthenticator-Common-GetMethods,System-String- 'AppApiAuthenticator.Client.Authorizor.generateHeader(AppApiAuthenticator.Common.GetMethods,System.String)')
- [generateHeader\`\`1(body,method,isJson,customSig)](#M-AppApiAuthenticator-Client-Authorizor-generateHeader``1-``0,AppApiAuthenticator-Common-PostMethods,System-Boolean,System-String- 'AppApiAuthenticator.Client.Authorizor.generateHeader``1(``0,AppApiAuthenticator.Common.PostMethods,System.Boolean,System.String)')
- [Authorizor\`1](#T-AppApiAuthenticator-Server-Authorizor`1 'AppApiAuthenticator.Server.Authorizor`1')
- [#ctor(apps)](#M-AppApiAuthenticator-Server-Authorizor`1-#ctor-System-Collections-Generic-List{`0}- 'AppApiAuthenticator.Server.Authorizor`1.#ctor(System.Collections.Generic.List{`0})')
- [apps](#F-AppApiAuthenticator-Server-Authorizor`1-apps 'AppApiAuthenticator.Server.Authorizor`1.apps')
- [authenticateApp(headers,method,customSig)](#M-AppApiAuthenticator-Server-Authorizor`1-authenticateApp-System-Collections-Generic-Dictionary{System-String,System-String},AppApiAuthenticator-Common-PostMethods,System-String- 'AppApiAuthenticator.Server.Authorizor`1.authenticateApp(System.Collections.Generic.Dictionary{System.String,System.String},AppApiAuthenticator.Common.PostMethods,System.String)')
- [authenticateApp\`\`1(headers,body,method,isJson,customSig)](#M-AppApiAuthenticator-Server-Authorizor`1-authenticateApp``1-System-Collections-Generic-Dictionary{System-String,System-String},``0,AppApiAuthenticator-Common-PostMethods,System-Boolean,System-String- 'AppApiAuthenticator.Server.Authorizor`1.authenticateApp``1(System.Collections.Generic.Dictionary{System.String,System.String},``0,AppApiAuthenticator.Common.PostMethods,System.Boolean,System.String)')
- [headersPresent(headers)](#M-AppApiAuthenticator-Server-Authorizor`1-headersPresent-System-Collections-Generic-Dictionary{System-String,System-String}- 'AppApiAuthenticator.Server.Authorizor`1.headersPresent(System.Collections.Generic.Dictionary{System.String,System.String})')
- [Common](#T-AppApiAuthenticator-Common 'AppApiAuthenticator.Common')
- [replacePlaceholders(signature,values)](#M-AppApiAuthenticator-Common-replacePlaceholders-System-String@,System-Collections-Generic-Dictionary{System-String,System-String}- 'AppApiAuthenticator.Common.replacePlaceholders(System.String@,System.Collections.Generic.Dictionary{System.String,System.String})')
- [Crypto](#T-AppApiAuthenticator-Crypto 'AppApiAuthenticator.Crypto')
- [calculateHMACSha256(text,key)](#M-AppApiAuthenticator-Crypto-calculateHMACSha256-System-String,System-String- 'AppApiAuthenticator.Crypto.calculateHMACSha256(System.String,System.String)')
- [calculateSha256(text)](#M-AppApiAuthenticator-Crypto-calculateSha256-System-String- 'AppApiAuthenticator.Crypto.calculateSha256(System.String)')
- [GetMethods](#T-AppApiAuthenticator-Common-GetMethods 'AppApiAuthenticator.Common.GetMethods')
- [DELETE](#F-AppApiAuthenticator-Common-GetMethods-DELETE 'AppApiAuthenticator.Common.GetMethods.DELETE')
- [GET](#F-AppApiAuthenticator-Common-GetMethods-GET 'AppApiAuthenticator.Common.GetMethods.GET')
- [HEAD](#F-AppApiAuthenticator-Common-GetMethods-HEAD 'AppApiAuthenticator.Common.GetMethods.HEAD')
- [Header](#T-AppApiAuthenticator-Server-Authorizor`1-Header 'AppApiAuthenticator.Server.Authorizor`1.Header')
- [IAppDbModel](#T-AppApiAuthenticator-Interfaces-IAppDbModel 'AppApiAuthenticator.Interfaces.IAppDbModel')
- [AppAuthID](#P-AppApiAuthenticator-Interfaces-IAppDbModel-AppAuthID 'AppApiAuthenticator.Interfaces.IAppDbModel.AppAuthID')
- [Key](#P-AppApiAuthenticator-Interfaces-IAppDbModel-Key 'AppApiAuthenticator.Interfaces.IAppDbModel.Key')
- [InvalidChallengeException](#T-AppApiAuthenticator-Server-InvalidChallengeException 'AppApiAuthenticator.Server.InvalidChallengeException')
- [#ctor()](#M-AppApiAuthenticator-Server-InvalidChallengeException-#ctor 'AppApiAuthenticator.Server.InvalidChallengeException.#ctor')
- [#ctor(message)](#M-AppApiAuthenticator-Server-InvalidChallengeException-#ctor-System-String- 'AppApiAuthenticator.Server.InvalidChallengeException.#ctor(System.String)')
- [#ctor(message,inner)](#M-AppApiAuthenticator-Server-InvalidChallengeException-#ctor-System-String,System-Exception- 'AppApiAuthenticator.Server.InvalidChallengeException.#ctor(System.String,System.Exception)')
- [InvalidEnumException](#T-AppApiAuthenticator-InvalidEnumException 'AppApiAuthenticator.InvalidEnumException')
- [#ctor()](#M-AppApiAuthenticator-InvalidEnumException-#ctor 'AppApiAuthenticator.InvalidEnumException.#ctor')
- [#ctor(message)](#M-AppApiAuthenticator-InvalidEnumException-#ctor-System-String- 'AppApiAuthenticator.InvalidEnumException.#ctor(System.String)')
- [#ctor(message,inner)](#M-AppApiAuthenticator-InvalidEnumException-#ctor-System-String,System-Exception- 'AppApiAuthenticator.InvalidEnumException.#ctor(System.String,System.Exception)')
- [MissingHeaderException](#T-AppApiAuthenticator-Server-MissingHeaderException 'AppApiAuthenticator.Server.MissingHeaderException')
- [#ctor()](#M-AppApiAuthenticator-Server-MissingHeaderException-#ctor 'AppApiAuthenticator.Server.MissingHeaderException.#ctor')
- [#ctor(message)](#M-AppApiAuthenticator-Server-MissingHeaderException-#ctor-System-String- 'AppApiAuthenticator.Server.MissingHeaderException.#ctor(System.String)')
- [#ctor(message,inner)](#M-AppApiAuthenticator-Server-MissingHeaderException-#ctor-System-String,System-Exception- 'AppApiAuthenticator.Server.MissingHeaderException.#ctor(System.String,System.Exception)')
- [NoAuthorizedAppsException](#T-AppApiAuthenticator-Server-NoAuthorizedAppsException 'AppApiAuthenticator.Server.NoAuthorizedAppsException')
- [#ctor()](#M-AppApiAuthenticator-Server-NoAuthorizedAppsException-#ctor 'AppApiAuthenticator.Server.NoAuthorizedAppsException.#ctor')
- [#ctor(message)](#M-AppApiAuthenticator-Server-NoAuthorizedAppsException-#ctor-System-String- 'AppApiAuthenticator.Server.NoAuthorizedAppsException.#ctor(System.String)')
- [#ctor(message,inner)](#M-AppApiAuthenticator-Server-NoAuthorizedAppsException-#ctor-System-String,System-Exception- 'AppApiAuthenticator.Server.NoAuthorizedAppsException.#ctor(System.String,System.Exception)')
- [PostMethods](#T-AppApiAuthenticator-Common-PostMethods 'AppApiAuthenticator.Common.PostMethods')
- [PATCH](#F-AppApiAuthenticator-Common-PostMethods-PATCH 'AppApiAuthenticator.Common.PostMethods.PATCH')
- [POST](#F-AppApiAuthenticator-Common-PostMethods-POST 'AppApiAuthenticator.Common.PostMethods.POST')
- [PUT](#F-AppApiAuthenticator-Common-PostMethods-PUT 'AppApiAuthenticator.Common.PostMethods.PUT')
- [extensionClass](#T-AppApiAuthenticator-extensionClass 'AppApiAuthenticator.extensionClass')
- [getDescription(e)](#M-AppApiAuthenticator-extensionClass-getDescription-System-Enum- 'AppApiAuthenticator.extensionClass.getDescription(System.Enum)')
- [parseEnum\`\`1(str)](#M-AppApiAuthenticator-extensionClass-parseEnum``1-System-String- 'AppApiAuthenticator.extensionClass.parseEnum``1(System.String)')
## AppIdNotFoundException `type`
##### Namespace
AppApiAuthenticator.Server
##### Summary
Exception when the app id is not found
### #ctor() `constructor`
##### Summary
Default initializer when there's no data
##### Parameters
This constructor has no parameters.
### #ctor(message) `constructor`
##### Summary
Default initializer, for message only
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
### #ctor(message,inner) `constructor`
##### Summary
Default initializer, for message and inner exception
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
| inner | [System.Exception](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Exception 'System.Exception') | Inner exception |
## Authorizor `type`
##### Namespace
AppApiAuthenticator.Client
##### Summary
Class containing the methods to generate the headers
### #ctor(appId,appKey) `constructor`
##### Summary
Initializes the class, requires the appId and appKey
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| appId | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The appId to be authorized |
| appKey | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The appKey to use on the authorization |
### appId `constants`
##### Summary
Holds the appId on the current instance
### appKey `constants`
##### Summary
Holds the appKey on the current instance
### generateHeader(method,customSig) `method`
##### Summary
Generates the headers required for the app authentication with the API for the methods "GET", "HEAD" and "DELETE"
##### Returns
The dictionary with the headers required for the authentication
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| method | [AppApiAuthenticator.Common.GetMethods](#T-AppApiAuthenticator-Common-GetMethods 'AppApiAuthenticator.Common.GetMethods') | The method of the request |
| customSig | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The signature format that will be used to generate the request signature, optional, defaults to "{appid}{method}{timestamp}{nonce}" |
### generateHeader\`\`1(body,method,isJson,customSig) `method`
##### Summary
Generates the headers required for the app authentication with the API for the methods "POST", "PATCH" and "PUT"
##### Returns
The dictionary with the headers required for the authentication
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| body | [\`\`0](#T-``0 '``0') | The body of the request, must be a codable struct or a \`string\` if body is a \`string\` parameter \`isJson\` must be set to \`false\` |
| method | [AppApiAuthenticator.Common.PostMethods](#T-AppApiAuthenticator-Common-PostMethods 'AppApiAuthenticator.Common.PostMethods') | The method of the request, optional, defaults to \`PostMethods.POST\` |
| isJson | [System.Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') | Sets if the body is a conformable json class or a \`string\` |
| customSig | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The signature format that will be used to generate the request signature, optional, defaults to "{appid}{method}{timestamp}{nonce}{bodyhash}" |
##### Generic Types
| Name | Description |
| ---- | ----------- |
| T | The type of the body, this is inferred by the parameter |
## Authorizor\`1 `type`
##### Namespace
AppApiAuthenticator.Server
##### Summary
Class containing the methods to authenticate the app with the API
### #ctor(apps) `constructor`
##### Summary
Initializes the authorizor for the server side, requires a list of type LT that implements the protocol IAppDbModel
If the dictionary is empty the exception \`NoAuthorizedApps\` is thrown
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| apps | [System.Collections.Generic.List{\`0}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.List 'System.Collections.Generic.List{`0}') | Dictionary of authorized apps |
##### Exceptions
| Name | Description |
| ---- | ----------- |
| [AppApiAuthenticator.Server.NoAuthorizedAppsException](#T-AppApiAuthenticator-Server-NoAuthorizedAppsException 'AppApiAuthenticator.Server.NoAuthorizedAppsException') | The list of authorized apps is empty |
### apps `constants`
##### Summary
Holds the list contaning the authorized apps id's and keys
### authenticateApp(headers,method,customSig) `method`
##### Summary
Tries to authenticate the app with the api for the methods "GET", "HEAD" and "DELETE"
##### Returns
true if authenticated, no other return as all other paths lead to exceptions
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| headers | [System.Collections.Generic.Dictionary{System.String,System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.Dictionary 'System.Collections.Generic.Dictionary{System.String,System.String}') | The headers of the request, must be at least the headers mentioned on the \`Header\` enum |
| method | [AppApiAuthenticator.Common.PostMethods](#T-AppApiAuthenticator-Common-PostMethods 'AppApiAuthenticator.Common.PostMethods') | The method of the request, optional, defaults to \`GetMethods.GET\` |
| customSig | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The signature format that will be used to generate the request signature, optional, defaults to "{appid}{method}{timestamp}{nonce}" |
##### Exceptions
| Name | Description |
| ---- | ----------- |
| [AppApiAuthenticator.Server.MissingHeaderException](#T-AppApiAuthenticator-Server-MissingHeaderException 'AppApiAuthenticator.Server.MissingHeaderException') | Missing required header for the authorization (the missing header is described in the Message) |
| [AppApiAuthenticator.Server.InvalidChallengeException](#T-AppApiAuthenticator-Server-InvalidChallengeException 'AppApiAuthenticator.Server.InvalidChallengeException') | Missing required header for the authorization (the missing header is described in the Message) |
### authenticateApp\`\`1(headers,body,method,isJson,customSig) `method`
##### Summary
Tries to authenticate the app with the api for the methods "POST", "PATCH" and "PUT"
##### Returns
true if authenticated, no other return as all other paths lead to exceptions
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| headers | [System.Collections.Generic.Dictionary{System.String,System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.Dictionary 'System.Collections.Generic.Dictionary{System.String,System.String}') | The headers of the request, must be at least the headers mentioned on the \`Header\` enum |
| body | [\`\`0](#T-``0 '``0') | The body of the request, must be a codable struct or a \`string\` if body is a \`string\` parameter \`isJson\` must be set to \`false\` |
| method | [AppApiAuthenticator.Common.PostMethods](#T-AppApiAuthenticator-Common-PostMethods 'AppApiAuthenticator.Common.PostMethods') | The method of the request, optional, defaults to \`PostMethods.POST\` |
| isJson | [System.Boolean](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Boolean 'System.Boolean') | Sets if the body is a conformable json class or a \`string\` |
| customSig | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The signature format that will be used to generate the request signature, optional, defaults to "{appid}{method}{timestamp}{nonce}{bodyhash}" |
##### Generic Types
| Name | Description |
| ---- | ----------- |
| T | The type of the body, this is inferred by the parameter |
##### Exceptions
| Name | Description |
| ---- | ----------- |
| [AppApiAuthenticator.Server.MissingHeaderException](#T-AppApiAuthenticator-Server-MissingHeaderException 'AppApiAuthenticator.Server.MissingHeaderException') | Missing required header for the authorization (the missing header is described in the Message) |
| [AppApiAuthenticator.Server.InvalidChallengeException](#T-AppApiAuthenticator-Server-InvalidChallengeException 'AppApiAuthenticator.Server.InvalidChallengeException') | Missing required header for the authorization (the missing header is described in the Message) |
### headersPresent(headers) `method`
##### Summary
Checks if all headers required for the authorization are present
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| headers | [System.Collections.Generic.Dictionary{System.String,System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.Dictionary 'System.Collections.Generic.Dictionary{System.String,System.String}') | The headers of the request |
##### Exceptions
| Name | Description |
| ---- | ----------- |
| [AppApiAuthenticator.Server.MissingHeaderException](#T-AppApiAuthenticator-Server-MissingHeaderException 'AppApiAuthenticator.Server.MissingHeaderException') | Missing required header for the authorization (the missing header is described in the Message) |
## Common `type`
##### Namespace
AppApiAuthenticator
##### Summary
Class containing shared methods and enums
### replacePlaceholders(signature,values) `method`
##### Summary
Replaces the signature format with the proper signature values
The signature format must be passed as reference to it's done "in place" thus not returning any value
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| signature | [System.String@](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String@ 'System.String@') | The signature format |
| values | [System.Collections.Generic.Dictionary{System.String,System.String}](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Collections.Generic.Dictionary 'System.Collections.Generic.Dictionary{System.String,System.String}') | The values to replace on the signature |
## Crypto `type`
##### Namespace
AppApiAuthenticator
### calculateHMACSha256(text,key) `method`
##### Summary
Calculates the HMAC-SHA256 of a string
##### Returns
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| text | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The string from which will be calculated the authenticated message |
| key | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The key to create the authenticated message |
### calculateSha256(text) `method`
##### Summary
Calculates the SHA256 of a string
##### Returns
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| text | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | String from which will be generate the hash |
## GetMethods `type`
##### Namespace
AppApiAuthenticator.Common
##### Summary
The allowed methods for requests without body
### DELETE `constants`
##### Summary
Method DELETE
### GET `constants`
##### Summary
Method GET
### HEAD `constants`
##### Summary
Method HEAD
## Header `type`
##### Namespace
AppApiAuthenticator.Server.Authorizor`1
##### Summary
Required headers for the authorization
## IAppDbModel `type`
##### Namespace
AppApiAuthenticator.Interfaces
##### Summary
Interface required to initialize the AppAuthServer
The class contaning the AppID's and Keys must conform with this interface
### AppAuthID `property`
##### Summary
GUID of the APP
### Key `property`
##### Summary
Key of the APP
## InvalidChallengeException `type`
##### Namespace
AppApiAuthenticator.Server
##### Summary
Exception when the challenge fails
### #ctor() `constructor`
##### Summary
Default initializer when there's no data
##### Parameters
This constructor has no parameters.
### #ctor(message) `constructor`
##### Summary
Default initializer, for message only
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
### #ctor(message,inner) `constructor`
##### Summary
Default initializer, for message and inner exception
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
| inner | [System.Exception](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Exception 'System.Exception') | Inner exception |
## InvalidEnumException `type`
##### Namespace
AppApiAuthenticator
##### Summary
Exception when the Enum can't be parsed
### #ctor() `constructor`
##### Summary
Default initializer when there's no data
##### Parameters
This constructor has no parameters.
### #ctor(message) `constructor`
##### Summary
Default initializer, for message only
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
### #ctor(message,inner) `constructor`
##### Summary
Default initializer, for message and inner exception
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
| inner | [System.Exception](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Exception 'System.Exception') | Inner exception |
## MissingHeaderException `type`
##### Namespace
AppApiAuthenticator.Server
##### Summary
Exception when there's one missing header
### #ctor() `constructor`
##### Summary
Default initializer when there's no data
##### Parameters
This constructor has no parameters.
### #ctor(message) `constructor`
##### Summary
Default initializer, for message only
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
### #ctor(message,inner) `constructor`
##### Summary
Default initializer, for message and inner exception
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
| inner | [System.Exception](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Exception 'System.Exception') | Inner exception |
## NoAuthorizedAppsException `type`
##### Namespace
AppApiAuthenticator.Server
##### Summary
Exception when there are no authorized apps
### #ctor() `constructor`
##### Summary
Default initializer when there's no data
##### Parameters
This constructor has no parameters.
### #ctor(message) `constructor`
##### Summary
Default initializer, for message only
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
### #ctor(message,inner) `constructor`
##### Summary
Default initializer, for message and inner exception
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| message | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | Error message |
| inner | [System.Exception](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Exception 'System.Exception') | Inner exception |
## PostMethods `type`
##### Namespace
AppApiAuthenticator.Common
##### Summary
The allowed methods for requests with body
### PATCH `constants`
##### Summary
Method PATCH
### POST `constants`
##### Summary
Method POST
### PUT `constants`
##### Summary
Method PUT
## extensionClass `type`
##### Namespace
AppApiAuthenticator
##### Summary
Adds extensions to classes
### getDescription(e) `method`
##### Summary
Gets the description of the enumerator
##### Returns
The description as string
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| e | [System.Enum](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.Enum 'System.Enum') | The enumerator |
### parseEnum\`\`1(str) `method`
##### Summary
Parses a string to a enum
If a num is not found throws InvalidEnumException
##### Returns
The enum value
##### Parameters
| Name | Type | Description |
| ---- | ---- | ----------- |
| str | [System.String](http://msdn.microsoft.com/query/dev14.query?appId=Dev14IDEF1&l=EN-US&k=k:System.String 'System.String') | The string to be parsed |
##### Generic Types
| Name | Description |
| ---- | ----------- |
| T | The type of the enum |