/// <summary>
        /// Gets the specified table resource by table ID. This method does not return the data in the table, it only returns the table resource, which describes the structure of this table.
        /// Documentation https://developers.google.com/bigquery/v2/reference/tables/get
        /// Generation Note: This does not always build corectly.  Google needs to standardise things I need to figuer out which ones are wrong.
        /// </summary>
        /// <param name="service">Authenticated Bigquery service.</param>
        /// <param name="projectId">Project ID of the requested table</param>
        /// <param name="datasetId">Dataset ID of the requested table</param>
        /// <param name="tableId">Table ID of the requested table</param>
        /// <param name="optional">Optional paramaters.</param>
        /// <returns>TableResponse</returns>
        public static Table Get(BigqueryService service, string projectId, string datasetId, string tableId, TablesGetOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                {
                    throw new ArgumentNullException("service");
                }
                if (projectId == null)
                {
                    throw new ArgumentNullException(projectId);
                }
                if (datasetId == null)
                {
                    throw new ArgumentNullException(datasetId);
                }
                if (tableId == null)
                {
                    throw new ArgumentNullException(tableId);
                }

                // Building the initial request.
                var request = service.Tables.Get(projectId, datasetId, tableId);

                // Applying optional parameters to the request.
                request = (TablesResource.GetRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return(request.Execute());
            }
            catch (Exception ex)
            {
                throw new Exception("Request Tables.Get failed.", ex);
            }
        }