public virtual PSFunction RetrieveDefaultPSFunctionDefinition(RetrieveDefaultPSFunctionDefinitionParameter parameter)
        {
            if (parameter == null)
            {
                throw new ArgumentNullException("parameter");
            }

            FunctionRetrieveDefaultDefinitionParameters functionRetrieveDefaultDefinitionParameters = SafeJsonConvert.DeserializeObject <FunctionRetrieveDefaultDefinitionParameters>(
                parameter.RawJsonContent,
                StreamAnalyticsClientExtensions.DeserializationSettings);

            var response = StreamAnalyticsManagementClient.Functions.RetrieveDefaultDefinition(
                parameter.ResourceGroupName, parameter.JobName, parameter.FunctionName, functionRetrieveDefaultDefinitionParameters);

            return(new PSFunction(response)
            {
                ResourceGroupName = parameter.ResourceGroupName,
                JobName = parameter.JobName
            });
        }
 /// <summary>
 /// Retrieves the default definition of a function based on the parameters
 /// specified.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='jobName'>
 /// The name of the streaming job.
 /// </param>
 /// <param name='functionName'>
 /// The name of the function.
 /// </param>
 /// <param name='functionRetrieveDefaultDefinitionParameters'>
 /// Parameters used to specify the type of function to retrieve the default
 /// definition for.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <Function> RetrieveDefaultDefinitionAsync(this IFunctionsOperations operations, string resourceGroupName, string jobName, string functionName, FunctionRetrieveDefaultDefinitionParameters functionRetrieveDefaultDefinitionParameters = default(FunctionRetrieveDefaultDefinitionParameters), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.RetrieveDefaultDefinitionWithHttpMessagesAsync(resourceGroupName, jobName, functionName, functionRetrieveDefaultDefinitionParameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Retrieves the default definition of a function based on the parameters
 /// specified.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group. The name is case insensitive.
 /// </param>
 /// <param name='jobName'>
 /// The name of the streaming job.
 /// </param>
 /// <param name='functionName'>
 /// The name of the function.
 /// </param>
 /// <param name='functionRetrieveDefaultDefinitionParameters'>
 /// Parameters used to specify the type of function to retrieve the default
 /// definition for.
 /// </param>
 public static Function RetrieveDefaultDefinition(this IFunctionsOperations operations, string resourceGroupName, string jobName, string functionName, FunctionRetrieveDefaultDefinitionParameters functionRetrieveDefaultDefinitionParameters = default(FunctionRetrieveDefaultDefinitionParameters))
 {
     return(operations.RetrieveDefaultDefinitionAsync(resourceGroupName, jobName, functionName, functionRetrieveDefaultDefinitionParameters).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Retrieve the default definition of a function for a stream
 /// analytics job.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.StreamAnalytics.IFunctionOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The resource group name of the stream analytics job.
 /// </param>
 /// <param name='jobName'>
 /// Required. The name of the stream analytics job.
 /// </param>
 /// <param name='functionName'>
 /// Required. The name of the function for the stream analytics job.
 /// </param>
 /// <param name='parameters'>
 /// Required. The parameters required to retrieve the default
 /// definition of a function for a stream analytics job.
 /// </param>
 /// <returns>
 /// The response of the retrieve default function definition operation.
 /// </returns>
 public static Task <FunctionRetrieveDefaultDefinitionResponse> RetrieveDefaultDefinitionAsync(this IFunctionOperations operations, string resourceGroupName, string jobName, string functionName, FunctionRetrieveDefaultDefinitionParameters parameters)
 {
     return(operations.RetrieveDefaultDefinitionAsync(resourceGroupName, jobName, functionName, parameters, CancellationToken.None));
 }
 /// <summary>
 /// Retrieve the default definition of a function for a stream
 /// analytics job.
 /// </summary>
 /// <param name='operations'>
 /// Reference to the
 /// Microsoft.Azure.Management.StreamAnalytics.IFunctionOperations.
 /// </param>
 /// <param name='resourceGroupName'>
 /// Required. The resource group name of the stream analytics job.
 /// </param>
 /// <param name='jobName'>
 /// Required. The name of the stream analytics job.
 /// </param>
 /// <param name='functionName'>
 /// Required. The name of the function for the stream analytics job.
 /// </param>
 /// <param name='parameters'>
 /// Required. The parameters required to retrieve the default
 /// definition of a function for a stream analytics job.
 /// </param>
 /// <returns>
 /// The response of the retrieve default function definition operation.
 /// </returns>
 public static FunctionRetrieveDefaultDefinitionResponse RetrieveDefaultDefinition(this IFunctionOperations operations, string resourceGroupName, string jobName, string functionName, FunctionRetrieveDefaultDefinitionParameters parameters)
 {
     return(Task.Factory.StartNew((object s) =>
     {
         return ((IFunctionOperations)s).RetrieveDefaultDefinitionAsync(resourceGroupName, jobName, functionName, parameters);
     }
                                  , operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }