# Models

## The SuccessResponse object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"SuccessResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation success status"}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation failed status"},"error":{"type":"object","properties":{"code":{"type":"integer","description":"Error code"},"message":{"type":"string","description":"Error message"}}}}}}}}
```

## The ApiKeyAuthorization object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"ApiKeyAuthorization":{"type":"object","required":["type","hash"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["api_key"]},"hash":{"type":"string","description":"An API key hash"}}}}}}
```

## The UserSessionAuthorization object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"UserSessionAuthorization":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["user_session"]}}}}}}
```

## The ApplicationAuthorization object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"ApplicationAuthorization":{"oneOf":[{"$ref":"#/components/schemas/ApiKeyAuthorization"},{"$ref":"#/components/schemas/UserSessionAuthorization"}]},"ApiKeyAuthorization":{"type":"object","required":["type","hash"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["api_key"]},"hash":{"type":"string","description":"An API key hash"}}},"UserSessionAuthorization":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["user_session"]}}}}}}
```

## The Application object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"Application":{"type":"object","required":["id","label","url_template"],"properties":{"id":{"type":"integer","description":"Application's ID"},"label":{"type":"string","description":"Application's name"},"url_template":{"type":"string","description":"URL template (including variables)"},"enabled":{"type":"boolean","description":"Determines visibility in the users' side menu","default":true},"authorization":{"$ref":"#/components/schemas/ApplicationAuthorization","description":"Authorization that will be used while accessing the URL"},"display_method":{"type":"string","description":"Determines how the application will be opened","enum":["new_tab","embedded"],"default":"new_tab"},"icon":{"type":"string","description":"Application's icon identifier","default":"extension"},"description":{"type":"string","description":"Longer plain text description is shown to users","default":""}}},"ApplicationAuthorization":{"oneOf":[{"$ref":"#/components/schemas/ApiKeyAuthorization"},{"$ref":"#/components/schemas/UserSessionAuthorization"}]},"ApiKeyAuthorization":{"type":"object","required":["type","hash"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["api_key"]},"hash":{"type":"string","description":"An API key hash"}}},"UserSessionAuthorization":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["user_session"]}}}}}}
```

## The CreateApplicationRequest object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"CreateApplicationRequest":{"type":"object","required":["label","url_template"],"properties":{"label":{"type":"string","description":"Application's name"},"url_template":{"type":"string","description":"URL template (including variables)"},"authorization":{"$ref":"#/components/schemas/ApplicationAuthorization","description":"Authorization that will be used while accessing the URL"},"display_method":{"type":"string","description":"Determines how the application will be opened","enum":["new_tab","embedded"],"default":"new_tab"},"icon":{"type":"string","description":"Application's icon identifier","default":"extension"},"description":{"type":"string","description":"Longer plain text description is shown to users","default":""}}},"ApplicationAuthorization":{"oneOf":[{"$ref":"#/components/schemas/ApiKeyAuthorization"},{"$ref":"#/components/schemas/UserSessionAuthorization"}]},"ApiKeyAuthorization":{"type":"object","required":["type","hash"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["api_key"]},"hash":{"type":"string","description":"An API key hash"}}},"UserSessionAuthorization":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["user_session"]}}}}}}
```

## The ApplicationListResponse object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"ApplicationListResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation success status"},"list":{"type":"array","description":"List of applications","items":{"$ref":"#/components/schemas/Application"}}}},"Application":{"type":"object","required":["id","label","url_template"],"properties":{"id":{"type":"integer","description":"Application's ID"},"label":{"type":"string","description":"Application's name"},"url_template":{"type":"string","description":"URL template (including variables)"},"enabled":{"type":"boolean","description":"Determines visibility in the users' side menu","default":true},"authorization":{"$ref":"#/components/schemas/ApplicationAuthorization","description":"Authorization that will be used while accessing the URL"},"display_method":{"type":"string","description":"Determines how the application will be opened","enum":["new_tab","embedded"],"default":"new_tab"},"icon":{"type":"string","description":"Application's icon identifier","default":"extension"},"description":{"type":"string","description":"Longer plain text description is shown to users","default":""}}},"ApplicationAuthorization":{"oneOf":[{"$ref":"#/components/schemas/ApiKeyAuthorization"},{"$ref":"#/components/schemas/UserSessionAuthorization"}]},"ApiKeyAuthorization":{"type":"object","required":["type","hash"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["api_key"]},"hash":{"type":"string","description":"An API key hash"}}},"UserSessionAuthorization":{"type":"object","required":["type"],"properties":{"type":{"type":"string","description":"Authorization type identifier","enum":["user_session"]}}}}}}
```

## The CreateApplicationResponse object

```json
{"openapi":"3.1.0","info":{"title":"User Applications API","version":"1.0.0"},"components":{"schemas":{"CreateApplicationResponse":{"type":"object","properties":{"success":{"type":"boolean","description":"Operation success status"},"id":{"type":"integer","description":"Unique ID of the created application"}}}}}}
```
