# Models

## The UserResponseResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"UserResponseResource":{"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier","readOnly":true},"href":{"type":"string","description":"URI for specific Admin in a Contract","format":"uri","readOnly":true},"firstName":{"type":"string","description":"first name of the user","readOnly":true},"lastName":{"type":"string","description":"last name of the user","readOnly":true},"email":{"type":"string","description":"email of the user","readOnly":true}}}}}}
```

## The UserRequestResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"UserRequestResource":{"required":["email","firstName","lastName","password"],"type":"object","properties":{"firstName":{"type":"string","description":"first name of the user"},"lastName":{"type":"string","description":"last name of the user"},"email":{"type":"string","description":"email of the user"},"password":{"type":"string","description":"password of the user"}}}}}}
```

## The UserUpdateRequestResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"UserUpdateRequestResource":{"required":["email","firstName","lastName"],"type":"object","properties":{"firstName":{"type":"string","description":"first name of the user"},"lastName":{"type":"string","description":"last name of the user"},"email":{"type":"string","description":"email of the user"}}}}}}
```

## The PaginatedContractResponseResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"PaginatedContractResponseResource":{"type":"object","properties":{"items":{"type":"array","description":"Array of items in the collection.","readOnly":true,"items":{"$ref":"#/components/schemas/ContractResponseResource"}},"offset":{"$ref":"#/components/schemas/PaginationOffsetOptional"},"limit":{"$ref":"#/components/schemas/PaginationLimitOptional"},"_links":{"$ref":"#/components/schemas/PaginationLinks"}}},"ContractResponseResource":{"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier","readOnly":true},"href":{"type":"string","description":"URI for specific Contract","format":"uri","readOnly":true},"name":{"type":"string","description":"name of the contract"},"resellerReference":{"type":"string","description":"reseller reference of the contract"},"status":{"type":"string","description":"status of the contract"},"resourceLimits":{"$ref":"#/components/schemas/ResourceLimits"}}},"ResourceLimits":{"required":["cpuContractMax","cpuServerMax","hddVolumeContractMaxSize","hddVolumeMaxSize","ips","ramContractMax","ramServerMax","ssdVolumeContractMaxSize","ssdVolumeMaxSize"],"type":"object","properties":{"ramServerMax":{"type":"integer","description":"maximum ram per virtual machine","format":"int32"},"cpuServerMax":{"type":"integer","description":"maximum number of cpu per virtual machine","format":"int32"},"hddVolumeMaxSize":{"type":"integer","description":"maximum hdd volume size","format":"int32"},"ssdVolumeMaxSize":{"type":"integer","description":"maximum ssd volume size","format":"int32"},"ramContractMax":{"type":"integer","description":"maximum ram per contract","format":"int32"},"cpuContractMax":{"type":"integer","description":"maximum cpu per contract","format":"int32"},"hddVolumeContractMaxSize":{"type":"integer","description":"maximum hhd volume per contract","format":"int32"},"ssdVolumeContractMaxSize":{"type":"integer","description":"maximum ssd volume per contract","format":"int32"},"ips":{"type":"integer","description":"maximum ips per contract","format":"int32"}}},"PaginationOffsetOptional":{"type":"number","description":"The offset (if specified in the request)."},"PaginationLimitOptional":{"type":"number","description":"The limit (if specified in the request)."},"PaginationLinks":{"type":"object","properties":{"prev":{"type":"string","description":"URL (with offset and limit parameters) of the previous page; only present if offset is greater than 0.","format":"uri","readOnly":true},"self":{"type":"string","description":"URL (with offset and limit parameters) of the current page.","format":"uri","readOnly":true},"next":{"type":"string","description":"URL (with offset and limit parameters) of the next page; only present if offset + limit is less than the total number of elements.","format":"uri","readOnly":true}}}}}}
```

## The ContractResponseResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"ContractResponseResource":{"type":"object","properties":{"id":{"type":"string","description":"The resource's unique identifier","readOnly":true},"href":{"type":"string","description":"URI for specific Contract","format":"uri","readOnly":true},"name":{"type":"string","description":"name of the contract"},"resellerReference":{"type":"string","description":"reseller reference of the contract"},"status":{"type":"string","description":"status of the contract"},"resourceLimits":{"$ref":"#/components/schemas/ResourceLimits"}}},"ResourceLimits":{"required":["cpuContractMax","cpuServerMax","hddVolumeContractMaxSize","hddVolumeMaxSize","ips","ramContractMax","ramServerMax","ssdVolumeContractMaxSize","ssdVolumeMaxSize"],"type":"object","properties":{"ramServerMax":{"type":"integer","description":"maximum ram per virtual machine","format":"int32"},"cpuServerMax":{"type":"integer","description":"maximum number of cpu per virtual machine","format":"int32"},"hddVolumeMaxSize":{"type":"integer","description":"maximum hdd volume size","format":"int32"},"ssdVolumeMaxSize":{"type":"integer","description":"maximum ssd volume size","format":"int32"},"ramContractMax":{"type":"integer","description":"maximum ram per contract","format":"int32"},"cpuContractMax":{"type":"integer","description":"maximum cpu per contract","format":"int32"},"hddVolumeContractMaxSize":{"type":"integer","description":"maximum hhd volume per contract","format":"int32"},"ssdVolumeContractMaxSize":{"type":"integer","description":"maximum ssd volume per contract","format":"int32"},"ips":{"type":"integer","description":"maximum ips per contract","format":"int32"}}}}}}
```

## The ResourceLimits object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"ResourceLimits":{"required":["cpuContractMax","cpuServerMax","hddVolumeContractMaxSize","hddVolumeMaxSize","ips","ramContractMax","ramServerMax","ssdVolumeContractMaxSize","ssdVolumeMaxSize"],"type":"object","properties":{"ramServerMax":{"type":"integer","description":"maximum ram per virtual machine","format":"int32"},"cpuServerMax":{"type":"integer","description":"maximum number of cpu per virtual machine","format":"int32"},"hddVolumeMaxSize":{"type":"integer","description":"maximum hdd volume size","format":"int32"},"ssdVolumeMaxSize":{"type":"integer","description":"maximum ssd volume size","format":"int32"},"ramContractMax":{"type":"integer","description":"maximum ram per contract","format":"int32"},"cpuContractMax":{"type":"integer","description":"maximum cpu per contract","format":"int32"},"hddVolumeContractMaxSize":{"type":"integer","description":"maximum hhd volume per contract","format":"int32"},"ssdVolumeContractMaxSize":{"type":"integer","description":"maximum ssd volume per contract","format":"int32"},"ips":{"type":"integer","description":"maximum ips per contract","format":"int32"}}}}}}
```

## The ContractRequestResource object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"ContractRequestResource":{"required":["name","resourceLimits"],"type":"object","properties":{"name":{"type":"string","description":"name of the contract"},"resellerReference":{"type":"string","description":"reseller reference of the contract"},"resourceLimits":{"$ref":"#/components/schemas/ResourceLimits"}}},"ResourceLimits":{"required":["cpuContractMax","cpuServerMax","hddVolumeContractMaxSize","hddVolumeMaxSize","ips","ramContractMax","ramServerMax","ssdVolumeContractMaxSize","ssdVolumeMaxSize"],"type":"object","properties":{"ramServerMax":{"type":"integer","description":"maximum ram per virtual machine","format":"int32"},"cpuServerMax":{"type":"integer","description":"maximum number of cpu per virtual machine","format":"int32"},"hddVolumeMaxSize":{"type":"integer","description":"maximum hdd volume size","format":"int32"},"ssdVolumeMaxSize":{"type":"integer","description":"maximum ssd volume size","format":"int32"},"ramContractMax":{"type":"integer","description":"maximum ram per contract","format":"int32"},"cpuContractMax":{"type":"integer","description":"maximum cpu per contract","format":"int32"},"hddVolumeContractMaxSize":{"type":"integer","description":"maximum hhd volume per contract","format":"int32"},"ssdVolumeContractMaxSize":{"type":"integer","description":"maximum ssd volume per contract","format":"int32"},"ips":{"type":"integer","description":"maximum ips per contract","format":"int32"}}}}}}
```

## The Info object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"Info":{"type":"object","properties":{"href":{"type":"string","description":"API entry point","format":"uri","readOnly":true},"name":{"type":"string","description":"Name of the API","readOnly":true},"version":{"type":"string","description":"Version of the API","readOnly":true}}}}}}
```

## The ErrorResponse object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"ErrorResponse":{"type":"object","properties":{"httpStatus":{"type":"integer","description":"HTTP status code of the operation.","readOnly":true},"messages":{"type":"array","items":{"$ref":"#/components/schemas/ErrorMessage"}}}},"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"IONOS Cloud error code."},"message":{"type":"string","description":"Limit must not exceed 5,000."}}}}}}
```

## The ErrorMessage object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"ErrorMessage":{"type":"object","properties":{"errorCode":{"type":"string","description":"IONOS Cloud error code."},"message":{"type":"string","description":"Limit must not exceed 5,000."}}}}}}
```

## The PaginationOffsetOptional object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"PaginationOffsetOptional":{"type":"number","description":"The offset (if specified in the request)."}}}}
```

## The PaginationLimitOptional object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"PaginationLimitOptional":{"type":"number","description":"The limit (if specified in the request)."}}}}
```

## The PaginationLinks object

```json
{"openapi":"3.0.1","info":{"title":"Reseller API","version":"2.0"},"components":{"schemas":{"PaginationLinks":{"type":"object","properties":{"prev":{"type":"string","description":"URL (with offset and limit parameters) of the previous page; only present if offset is greater than 0.","format":"uri","readOnly":true},"self":{"type":"string","description":"URL (with offset and limit parameters) of the current page.","format":"uri","readOnly":true},"next":{"type":"string","description":"URL (with offset and limit parameters) of the next page; only present if offset + limit is less than the total number of elements.","format":"uri","readOnly":true}}}}}}
```
