# GENERATED BY KOMAND SDK - DO NOT EDIT
import komand
import json


class Input:
    EMAIL = "email"
    IDS = "ids"
    

class Output:
    USER_LIST = "user_list"
    

class ListUsersInput(komand.Input):
    schema = json.loads("""
   {
  "type": "object",
  "title": "Variables",
  "properties": {
    "email": {
      "type": "string",
      "title": "Email",
      "description": "Filter by user email",
      "order": 1
    },
    "ids": {
      "type": "string",
      "title": "IDs",
      "description": "Filter by user IDs. IDs should be a comma separated list e.g. 123,345,678",
      "order": 2
    }
  }
}
    """)

    def __init__(self):
        super(self.__class__, self).__init__(self.schema)


class ListUsersOutput(komand.Output):
    schema = json.loads("""
   {
  "type": "object",
  "title": "Variables",
  "properties": {
    "user_list": {
      "type": "array",
      "title": "User List",
      "description": "List of users that meet the filter criteria",
      "items": {
        "$ref": "#/definitions/user"
      },
      "order": 1
    }
  },
  "definitions": {
    "user": {
      "type": "object",
      "title": "user",
      "properties": {
        "email": {
          "type": "string",
          "title": "Email",
          "description": "User's Email",
          "order": 4
        },
        "first_name": {
          "type": "string",
          "title": "First Name",
          "description": "User's first name",
          "order": 2
        },
        "id": {
          "type": "integer",
          "title": "ID",
          "description": "User ID number",
          "order": 1
        },
        "last_name": {
          "type": "string",
          "title": "Last Name",
          "description": "User's last name",
          "order": 3
        },
        "role": {
          "type": "string",
          "title": "Role",
          "description": "User's role",
          "order": 5
        }
      }
    }
  }
}
    """)

    def __init__(self):
        super(self.__class__, self).__init__(self.schema)
