# Functions
RequestDeviceCode will initiate the OAuth2 device authorization flow.
WaitForDeviceAuthorization polls the token URL waiting for the user to authorize the app.
# Variables
ErrAccessDenied is an error returned when the user has denied this app access to their account.
# Structs
Config is a version of oauth2.Config augmented with device endpoints.
A DeviceCode represents the user-visible code, verification URL and device-visible code used to allow for user authorisation of this app.
DeviceEndpoint contains the URLs required to initiate the OAuth2.0 flow for a provider's device flow.
# Interfaces
HTTPClient defines the required http client interface.