static async Task Main(string[] args)
        {
            var clientId     = "#printClientId#";
            var clientSecret = "#printClientSecret#";
            var printerId    = "#printer-id#";
            var credPath     = $"cerd.json";

            var provider = new GoogleCloudPrintOAuth2Provider(clientId, clientSecret);

            var jsonString = System.IO.File.ReadAllText(credPath);

            Token token = JsonConvert.DeserializeObject <Token>(jsonString);

            var client = new GoogleCloudPrintClient(provider, token);

            client.OnTokenUpdated += (sender, e) =>
            {
                string json = JsonConvert.SerializeObject(e);
                System.IO.File.WriteAllText(credPath, json);
            };

            var ticket = new CloudJobTicket
            {
                Print = new PrintTicketSection
                {
                    Color = new ColorTicketItem {
                        Type = Color.Type.STANDARD_MONOCHROME
                    },
                    //Duplex = new DuplexTicketItem { Type = Duplex.Type.LONG_EDGE },
                    PageOrientation = new PageOrientationTicketItem {
                        Type = PageOrientation.Type.LANDSCAPE
                    },
                    Copies = new CopiesTicketItem {
                        Copies = 1
                    }
                }
            };

            // Create a request for file submission, you can either submit a url with SubmitFileLink class, or a local file with SubmitFileStream class
            var request = new SubmitRequest
            {
                PrinterId = printerId,
                Title     = "Ebay-Printer",
                Ticket    = ticket,
                Content   = new SubmitFileLink("URL HERE")
            };

            // Submit request
            var response = await client.SubmitJobAsync(request);
        }