/// <param name="body">A valid CloudRuntimeConfig v1beta1 body.</param>
        /// <param name="optional">Optional paramaters.</param>        /// <returns>OperationResponse</returns>
        public static Operation Create(CloudRuntimeConfigService service, string parent, Waiter body, WaitersCreateOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (body == null)
                    throw new ArgumentNullException("body");
                if (parent == null)
                    throw new ArgumentNullException(parent);

                // Building the initial request.
                var request = service.Waiters.Create(body, parent);

                // Applying optional parameters to the request.                
                request = (WaitersResource.CreateRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return request.Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Waiters.Create failed.", ex);
            }
        }
        /// <returns>WaiterResponse</returns>
        public static Waiter Get(CloudRuntimeConfigService service, string name)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (name == null)
                    throw new ArgumentNullException(name);

                // Make the request.
                return service.Waiters.Get(name).Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Waiters.Get failed.", ex);
            }
        }
        /// Documentation https://developers.google.com/cloudruntimeconfig/v1/reference/operations/delete
        /// 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 CloudRuntimeConfig service.</param>  
        /// <param name="name">The name of the operation resource to be deleted.</param>
        /// <returns>EmptyResponse</returns>
        public static Empty Delete(CloudRuntimeConfigService service, string name)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (name == null)
                    throw new ArgumentNullException(name);

                // Make the request.
                return service.Operations.Delete(name).Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Operations.Delete failed.", ex);
            }
        }
        /// <param name="body">A valid CloudRuntimeConfig v1beta1 body.</param>
        /// <returns>VariableResponse</returns>
        public static Variable Watch(CloudRuntimeConfigService service, string name, WatchVariableRequest body)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (body == null)
                    throw new ArgumentNullException("body");
                if (name == null)
                    throw new ArgumentNullException(name);

                // Make the request.
                return service.Variables.Watch(body, name).Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Variables.Watch failed.", ex);
            }
        }
        /// <param name="optional">Optional paramaters.</param>        /// <returns>EmptyResponse</returns>
        public static Empty Delete(CloudRuntimeConfigService service, string name, VariablesDeleteOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (name == null)
                    throw new ArgumentNullException(name);

                // Building the initial request.
                var request = service.Variables.Delete(name);

                // Applying optional parameters to the request.                
                request = (VariablesResource.DeleteRequest)SampleHelpers.ApplyOptionalParms(request, optional);

                // Requesting data.
                return request.Execute();
            }
            catch (Exception ex)
            {
                throw new Exception("Request Variables.Delete failed.", ex);
            }
        }
        /// Documentation https://developers.google.com/cloudruntimeconfig/v1/reference/operations/list
        /// 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 CloudRuntimeConfig service.</param>  
        /// <param name="name">The name of the operation collection.</param>
        /// <param name="optional">Optional paramaters.</param>        /// <returns>ListOperationsResponseResponse</returns>
        public static ListOperationsResponse List(CloudRuntimeConfigService service, string name, OperationsListOptionalParms optional = null)
        {
            try
            {
                // Initial validation.
                if (service == null)
                    throw new ArgumentNullException("service");
                if (name == null)
                    throw new ArgumentNullException(name);

                // Building the initial request.
                var request = service.Operations.List(name);

                // Applying optional parameters to the request.                
                request = (OperationsResource.ListRequest)SampleHelpers.ApplyOptionalParms(request, optional);

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