# Path: async_v20/endpoints/annotations.py
# class UserSpecifier(str):
#     pass
# 
# class Authorization(str):
#     """Contains OANDA's v20 API authorization token"""
#     pass
# 
# Path: async_v20/endpoints/base.py
# class EndPoint(object):
#     """Base object representation of an endpoint"""
# 
#     # Default host to use unless otherwise specified by a derived class
#     host = 'REST'
# 
#     # Path needs to be a Path object
#     path = ()
# 
#     # the HTTP verb to use for this endpoint
#     method = ''
# 
#     # description of endpoint
#     description = ''
# 
#     # parameters required to send to endpoint
#     parameters = {}
# 
#     # valid responses
#     responses = {}
# 
#     # error msgs'
#     error = ()
# 
#     # json format the data body as per the response_schema below
#     request_schema = {}
# 
# HEADER = 'header'
# 
# QUERY = 'query'


from .annotations import UserSpecifier, Authorization
from .base import EndPoint, HEADER, QUERY
from ..definitions.types import *

__all__ = ['GETUserSpecifier', 'GETExternalInfo']


class GETUserSpecifier(EndPoint):
    # the HTTP verb to use for this endpoint
    method = 'GET'

    # path to endpoint
    path = ('/v3/users/', UserSpecifier)

    # description of endpoint
    description = 'Fetch the user information for the specified user.'

    # parameters required to send to endpoint
    parameters = {Authorization: (HEADER, 'Authorization'), UserSpecifier: (QUERY, 'userSpecifier')}

    # valid responses
    responses = {200: {'userInfo': UserInfo}}

    # error msgs'
    error = [401, 403, 405]



# Path: async_v20/endpoints/annotations.py
# class UserSpecifier(str):
#     pass
# 
# class Authorization(str):
#     """Contains OANDA's v20 API authorization token"""
#     pass
# 
# Path: async_v20/endpoints/base.py
# class EndPoint(object):
#     """Base object representation of an endpoint"""
# 
#     # Default host to use unless otherwise specified by a derived class
#     host = 'REST'
# 
#     # Path needs to be a Path object
#     path = ()
# 
#     # the HTTP verb to use for this endpoint
#     method = ''
# 
#     # description of endpoint
#     description = ''
# 
#     # parameters required to send to endpoint
#     parameters = {}
# 
#     # valid responses
#     responses = {}
# 
#     # error msgs'
#     error = ()
# 
#     # json format the data body as per the response_schema below
#     request_schema = {}
# 
# HEADER = 'header'
# 
# QUERY = 'query'


# Path: async_v20/endpoints/user.py
from .annotations import UserSpecifier, Authorization
from .base import EndPoint, HEADER, QUERY
from ..definitions.types import *


__all__ = ['GETUserSpecifier', 'GETExternalInfo']


class GETUserSpecifier(EndPoint):
    # the HTTP verb to use for this endpoint
    method = 'GET'

    # path to endpoint
    path = ('/v3/users/', UserSpecifier)

    # description of endpoint
    description = 'Fetch the user information for the specified user.'

    # parameters required to send to endpoint
    parameters = {Authorization: (HEADER, 'Authorization'), UserSpecifier: (QUERY, 'userSpecifier')}

    # valid responses
    responses = {200: {'userInfo': UserInfo}}

    # error msgs'
    error = [401, 403, 405]



class GETExternalInfo(EndPoint):