# Equipment

## get_equipment

`TOOL get_equipment`

Get list of equipment for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `search` (argument, string, optional) - Search term for equipment name, model, or serial number
  Type: string
  
  Search term for equipment name, model, or serial number

- `relations` (argument, array, optional) - Relations to include (e.g., ["assignedTo", "image", "tags", "equipmentSharings"])
  Type: array
  
  Relations to include (e.g., ["assignedTo", "image", "tags", "equipmentSharings"])
  
  Items:
    Type: string

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `status` (argument, string, optional) - Filter by equipment status
  Type: string
  
  Filter by equipment status
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

- `assignedToEmployeeId` (argument, string, uuid, optional) - Filter by assigned employee ID
  Type: string, uuid
  
  Filter by assigned employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `manufacturer` (argument, string, optional) - Filter by manufacturer
  Type: string
  
  Filter by manufacturer

- `available` (argument, boolean, optional) - Filter by availability (status = AVAILABLE)
  Type: boolean
  
  Filter by availability (status = AVAILABLE)

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment",
    "arguments": {
        "page": 1,
        "limit": 10,
        "search": "string",
        "relations": [
          "string"
        ],
        "type": "LAPTOP",
        "status": "AVAILABLE",
        "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
        "manufacturer": "string",
        "available": true
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment",
  "arguments": {
    "page": 1,
    "limit": 10,
    "search": "string",
    "relations": [
      "string"
    ],
    "type": "LAPTOP",
    "status": "AVAILABLE",
    "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
    "manufacturer": "string",
    "available": true
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment", arguments={
  "page": 1,
  "limit": 10,
  "search": "string",
  "relations": [
    "string"
  ],
  "type": "LAPTOP",
  "status": "AVAILABLE",
  "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
  "manufacturer": "string",
  "available": true
})
```


## get_equipment_count

`TOOL get_equipment_count`

Get equipment count in the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `status` (argument, string, optional) - Filter by equipment status
  Type: string
  
  Filter by equipment status
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

- `assignedToEmployeeId` (argument, string, uuid, optional) - Filter by assigned employee ID
  Type: string, uuid
  
  Filter by assigned employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `manufacturer` (argument, string, optional) - Filter by manufacturer
  Type: string
  
  Filter by manufacturer

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment_count",
    "arguments": {
        "type": "LAPTOP",
        "status": "AVAILABLE",
        "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
        "manufacturer": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment_count",
  "arguments": {
    "type": "LAPTOP",
    "status": "AVAILABLE",
    "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
    "manufacturer": "string"
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment_count", arguments={
  "type": "LAPTOP",
  "status": "AVAILABLE",
  "assignedToEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
  "manufacturer": "string"
})
```


## get_equipment_by_id

`TOOL get_equipment_by_id`

Get a specific equipment by ID

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `relations` (argument, array, optional) - Relations to include (e.g., ["assignedTo", "image", "tags", "equipmentSharings"])
  Type: array
  
  Relations to include (e.g., ["assignedTo", "image", "tags", "equipmentSharings"])
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment_by_id",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment_by_id",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment_by_id", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "relations": [
    "string"
  ]
})
```


## create_equipment

`TOOL create_equipment`

Create a new equipment in the authenticated user's organization

Authentication: no security requirement declared for this operation.

Request body: application/json (required)

Type: object

- `equipment_data` (required)
  Type: object
  
  The data for creating the equipment
  
  - `name` (required)
    Type: string
    
    The name (required)
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "create_equipment",
    "arguments": {
        "equipment_data": {
          "name": "string"
        }
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "create_equipment",
  "arguments": {
    "equipment_data": {
      "name": "string"
    }
  }
});
```

### Python

```python
result = await session.call_tool("create_equipment", arguments={
  "equipment_data": {
    "name": "string"
  }
})
```


## update_equipment

`TOOL update_equipment`

Update an existing equipment

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `equipment_data` (argument, object, required) - The data for updating the equipment
  Type: object
  
  The data for updating the equipment
  
  Additional properties: 
    Type: unknown

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_equipment",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "equipment_data": {}
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "update_equipment",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "equipment_data": {}
  }
});
```

### Python

```python
result = await session.call_tool("update_equipment", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "equipment_data": {}
})
```


## update_equipment_status

`TOOL update_equipment_status`

Update the status of equipment

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `status` (argument, string, required) - The new status for the equipment
  Type: string
  
  The new status for the equipment
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "update_equipment_status",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "status": "AVAILABLE"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "update_equipment_status",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "status": "AVAILABLE"
  }
});
```

### Python

```python
result = await session.call_tool("update_equipment_status", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "status": "AVAILABLE"
})
```


## assign_equipment

`TOOL assign_equipment`

Assign equipment to an employee

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `employeeId` (argument, string, uuid, required) - The employee ID to assign to
  Type: string, uuid
  
  The employee ID to assign to
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "assign_equipment",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000",
        "employeeId": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "assign_equipment",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000",
    "employeeId": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("assign_equipment", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000",
  "employeeId": "550e8400-e29b-41d4-a716-446655440000"
})
```


## unassign_equipment

`TOOL unassign_equipment`

Unassign equipment from an employee (make it available)

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "unassign_equipment",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "unassign_equipment",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("unassign_equipment", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## delete_equipment

`TOOL delete_equipment`

Delete equipment

Authentication: no security requirement declared for this operation.

Parameters:

- `id` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "delete_equipment",
    "arguments": {
        "id": "550e8400-e29b-41d4-a716-446655440000"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "delete_equipment",
  "arguments": {
    "id": "550e8400-e29b-41d4-a716-446655440000"
  }
});
```

### Python

```python
result = await session.call_tool("delete_equipment", arguments={
  "id": "550e8400-e29b-41d4-a716-446655440000"
})
```


## get_equipment_by_employee

`TOOL get_equipment_by_employee`

Get equipment assigned to a specific employee

Authentication: no security requirement declared for this operation.

Parameters:

- `employeeId` (argument, string, uuid, required) - The employee ID
  Type: string, uuid
  
  The employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `status` (argument, string, optional) - Filter by equipment status
  Type: string
  
  Filter by equipment status
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

- `relations` (argument, array, optional) - Relations to include
  Type: array
  
  Relations to include
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment_by_employee",
    "arguments": {
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "page": 1,
        "limit": 10,
        "type": "LAPTOP",
        "status": "AVAILABLE",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment_by_employee",
  "arguments": {
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "page": 1,
    "limit": 10,
    "type": "LAPTOP",
    "status": "AVAILABLE",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment_by_employee", arguments={
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "page": 1,
  "limit": 10,
  "type": "LAPTOP",
  "status": "AVAILABLE",
  "relations": [
    "string"
  ]
})
```


## get_my_equipment

`TOOL get_my_equipment`

Get equipment assigned to the current authenticated user

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `status` (argument, string, optional) - Filter by equipment status
  Type: string
  
  Filter by equipment status
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

- `relations` (argument, array, optional) - Relations to include
  Type: array
  
  Relations to include
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_my_equipment",
    "arguments": {
        "page": 1,
        "limit": 10,
        "type": "LAPTOP",
        "status": "AVAILABLE",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_my_equipment",
  "arguments": {
    "page": 1,
    "limit": 10,
    "type": "LAPTOP",
    "status": "AVAILABLE",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_my_equipment", arguments={
  "page": 1,
  "limit": 10,
  "type": "LAPTOP",
  "status": "AVAILABLE",
  "relations": [
    "string"
  ]
})
```


## get_available_equipment

`TOOL get_available_equipment`

Get available (unassigned) equipment for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `manufacturer` (argument, string, optional) - Filter by manufacturer
  Type: string
  
  Filter by manufacturer

- `relations` (argument, array, optional) - Relations to include
  Type: array
  
  Relations to include
  
  Items:
    Type: string

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_available_equipment",
    "arguments": {
        "page": 1,
        "limit": 10,
        "type": "LAPTOP",
        "manufacturer": "string",
        "relations": [
          "string"
        ]
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_available_equipment",
  "arguments": {
    "page": 1,
    "limit": 10,
    "type": "LAPTOP",
    "manufacturer": "string",
    "relations": [
      "string"
    ]
  }
});
```

### Python

```python
result = await session.call_tool("get_available_equipment", arguments={
  "page": 1,
  "limit": 10,
  "type": "LAPTOP",
  "manufacturer": "string",
  "relations": [
    "string"
  ]
})
```


## get_equipment_statistics

`TOOL get_equipment_statistics`

Get equipment statistics for the authenticated user's organization

Authentication: no security requirement declared for this operation.

Parameters:

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `manufacturer` (argument, string, optional) - Filter by manufacturer
  Type: string
  
  Filter by manufacturer

- `groupBy` (argument, string, optional) - Group statistics by
  Type: string
  
  Group statistics by
  
  enum: ["type","status","manufacturer","assignee"]

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment_statistics",
    "arguments": {
        "type": "LAPTOP",
        "manufacturer": "string",
        "groupBy": "type"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment_statistics",
  "arguments": {
    "type": "LAPTOP",
    "manufacturer": "string",
    "groupBy": "type"
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment_statistics", arguments={
  "type": "LAPTOP",
  "manufacturer": "string",
  "groupBy": "type"
})
```


## request_equipment_sharing

`TOOL request_equipment_sharing`

Request to share equipment with another employee

Authentication: no security requirement declared for this operation.

Parameters:

- `equipmentId` (argument, string, uuid, required) - The equipment ID
  Type: string, uuid
  
  The equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `shareWithEmployeeId` (argument, string, uuid, required) - The employee ID to share with
  Type: string, uuid
  
  The employee ID to share with
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `shareStartDate` (argument, string, required) - The start date for sharing (ISO format)
  Type: string
  
  The start date for sharing (ISO format)

- `shareEndDate` (argument, string, required) - The end date for sharing (ISO format)
  Type: string
  
  The end date for sharing (ISO format)

- `reason` (argument, string, optional) - Reason for sharing request
  Type: string
  
  Reason for sharing request

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "request_equipment_sharing",
    "arguments": {
        "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
        "shareWithEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
        "shareStartDate": "string",
        "shareEndDate": "string",
        "reason": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "request_equipment_sharing",
  "arguments": {
    "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
    "shareWithEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
    "shareStartDate": "string",
    "shareEndDate": "string",
    "reason": "string"
  }
});
```

### Python

```python
result = await session.call_tool("request_equipment_sharing", arguments={
  "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
  "shareWithEmployeeId": "550e8400-e29b-41d4-a716-446655440000",
  "shareStartDate": "string",
  "shareEndDate": "string",
  "reason": "string"
})
```


## get_equipment_sharing_requests

`TOOL get_equipment_sharing_requests`

Get equipment sharing requests

Authentication: no security requirement declared for this operation.

Parameters:

- `equipmentId` (argument, string, uuid, optional) - Filter by equipment ID
  Type: string, uuid
  
  Filter by equipment ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `employeeId` (argument, string, uuid, optional) - Filter by employee ID
  Type: string, uuid
  
  Filter by employee ID
  
  pattern: "^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$"

- `status` (argument, string, optional) - Filter by sharing status
  Type: string
  
  Filter by sharing status

- `page` (argument, number, optional) - Page number for pagination
  Type: number
  
  Page number for pagination
  
  default: 1

- `limit` (argument, number, optional) - Number of items per page
  Type: number
  
  Number of items per page
  
  default: 10

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "get_equipment_sharing_requests",
    "arguments": {
        "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
        "employeeId": "550e8400-e29b-41d4-a716-446655440000",
        "status": "string",
        "page": 1,
        "limit": 10
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "get_equipment_sharing_requests",
  "arguments": {
    "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
    "employeeId": "550e8400-e29b-41d4-a716-446655440000",
    "status": "string",
    "page": 1,
    "limit": 10
  }
});
```

### Python

```python
result = await session.call_tool("get_equipment_sharing_requests", arguments={
  "equipmentId": "550e8400-e29b-41d4-a716-446655440000",
  "employeeId": "550e8400-e29b-41d4-a716-446655440000",
  "status": "string",
  "page": 1,
  "limit": 10
})
```


## search_equipment

`TOOL search_equipment`

Search equipment by name, model, serial number, or description

Authentication: no security requirement declared for this operation.

Parameters:

- `query` (argument, string, required) - Search query
  Type: string
  
  Search query

- `limit` (argument, number, optional) - Maximum number of results
  Type: number
  
  Maximum number of results
  
  default: 20

- `type` (argument, string, optional) - Filter by equipment type
  Type: string
  
  Filter by equipment type
  
  enum: ["LAPTOP","DESKTOP","MONITOR","MOBILE","PRINTER","FURNITURE","SOFTWARE_LICENSE","OTHER"]

- `status` (argument, string, optional) - Filter by equipment status
  Type: string
  
  Filter by equipment status
  
  enum: ["AVAILABLE","ASSIGNED","IN_REPAIR","RETIRED","LOST","DAMAGED"]

- `manufacturer` (argument, string, optional) - Filter by manufacturer
  Type: string
  
  Filter by manufacturer

## Examples

### JSON-RPC

```json
{
  "jsonrpc": "2.0",
  "id": 1,
  "method": "tools/call",
  "params": {
    "name": "search_equipment",
    "arguments": {
        "query": "string",
        "limit": 20,
        "type": "LAPTOP",
        "status": "AVAILABLE",
        "manufacturer": "string"
      }
  }
}
```

### TypeScript

```typescript
const result = await client.callTool({
  "name": "search_equipment",
  "arguments": {
    "query": "string",
    "limit": 20,
    "type": "LAPTOP",
    "status": "AVAILABLE",
    "manufacturer": "string"
  }
});
```

### Python

```python
result = await session.call_tool("search_equipment", arguments={
  "query": "string",
  "limit": 20,
  "type": "LAPTOP",
  "status": "AVAILABLE",
  "manufacturer": "string"
})
```
