/// <summary>
 /// Get a system topic.
 /// </summary>
 /// <remarks>
 /// Get properties of a system topic.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <SystemTopic> GetAsync(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.GetWithHttpMessagesAsync(resourceGroupName, systemTopicName, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// List system topics under a resource group.
 /// </summary>
 /// <remarks>
 /// List all the system topics under a resource group.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='filter'>
 /// The query used to filter the search results using OData syntax. Filtering
 /// is permitted on the 'name' property only and with limited number of OData
 /// operations. These operations are: the 'contains' function as well as the
 /// following logical operations: not, and, or, eq (for equal), and ne (for not
 /// equal). No arithmetic operations are supported. The following is a valid
 /// filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'.
 /// The following is not a valid filter example: $filter=location eq 'westus'.
 /// </param>
 /// <param name='top'>
 /// The number of results to return per page for the list operation. Valid
 /// range for top parameter is 1 to 100. If not specified, the default number
 /// of results to be returned is 20 items per page.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IPage <SystemTopic> > ListByResourceGroupAsync(this ISystemTopicsOperations operations, string resourceGroupName, string filter = default(string), int?top = default(int?), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ListByResourceGroupWithHttpMessagesAsync(resourceGroupName, filter, top, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// List system topics under a resource group.
 /// </summary>
 /// <remarks>
 /// List all the system topics under a resource group.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='nextPageLink'>
 /// The NextLink from the previous successful call to List operation.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <IPage <SystemTopic> > ListByResourceGroupNextAsync(this ISystemTopicsOperations operations, string nextPageLink, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.ListByResourceGroupNextWithHttpMessagesAsync(nextPageLink, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Update a system topic.
 /// </summary>
 /// <remarks>
 /// Asynchronously updates a system topic with the specified parameters.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='tags'>
 /// Tags of the system topic.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <SystemTopic> BeginUpdateAsync(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, IDictionary <string, string> tags = default(IDictionary <string, string>), CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.BeginUpdateWithHttpMessagesAsync(resourceGroupName, systemTopicName, tags, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
 /// <summary>
 /// Create a system topic.
 /// </summary>
 /// <remarks>
 /// Asynchronously creates a new system topic with the specified parameters.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='systemTopicInfo'>
 /// System Topic information.
 /// </param>
 public static SystemTopic CreateOrUpdate(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, SystemTopic systemTopicInfo)
 {
     return(operations.CreateOrUpdateAsync(resourceGroupName, systemTopicName, systemTopicInfo).GetAwaiter().GetResult());
 }
 /// <summary>
 /// List system topics under a resource group.
 /// </summary>
 /// <remarks>
 /// List all the system topics under a resource group.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='nextPageLink'>
 /// The NextLink from the previous successful call to List operation.
 /// </param>
 public static IPage <SystemTopic> ListByResourceGroupNext(this ISystemTopicsOperations operations, string nextPageLink)
 {
     return(operations.ListByResourceGroupNextAsync(nextPageLink).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Update a system topic.
 /// </summary>
 /// <remarks>
 /// Asynchronously updates a system topic with the specified parameters.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='tags'>
 /// Tags of the system topic.
 /// </param>
 public static SystemTopic BeginUpdate(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, IDictionary <string, string> tags = default(IDictionary <string, string>))
 {
     return(operations.BeginUpdateAsync(resourceGroupName, systemTopicName, tags).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Delete a system topic.
 /// </summary>
 /// <remarks>
 /// Delete existing system topic.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task BeginDeleteAsync(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, CancellationToken cancellationToken = default(CancellationToken))
 {
     (await operations.BeginDeleteWithHttpMessagesAsync(resourceGroupName, systemTopicName, null, cancellationToken).ConfigureAwait(false)).Dispose();
 }
 /// <summary>
 /// Delete a system topic.
 /// </summary>
 /// <remarks>
 /// Delete existing system topic.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 public static void BeginDelete(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName)
 {
     operations.BeginDeleteAsync(resourceGroupName, systemTopicName).GetAwaiter().GetResult();
 }
 /// <summary>
 /// Get a system topic.
 /// </summary>
 /// <remarks>
 /// Get properties of a system topic.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 public static SystemTopic Get(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName)
 {
     return(operations.GetAsync(resourceGroupName, systemTopicName).GetAwaiter().GetResult());
 }
 /// <summary>
 /// List system topics under a resource group.
 /// </summary>
 /// <remarks>
 /// List all the system topics under a resource group.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='filter'>
 /// The query used to filter the search results using OData syntax. Filtering
 /// is permitted on the 'name' property only and with limited number of OData
 /// operations. These operations are: the 'contains' function as well as the
 /// following logical operations: not, and, or, eq (for equal), and ne (for not
 /// equal). No arithmetic operations are supported. The following is a valid
 /// filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'.
 /// The following is not a valid filter example: $filter=location eq 'westus'.
 /// </param>
 /// <param name='top'>
 /// The number of results to return per page for the list operation. Valid
 /// range for top parameter is 1 to 100. If not specified, the default number
 /// of results to be returned is 20 items per page.
 /// </param>
 public static IPage <SystemTopic> ListByResourceGroup(this ISystemTopicsOperations operations, string resourceGroupName, string filter = default(string), int?top = default(int?))
 {
     return(operations.ListByResourceGroupAsync(resourceGroupName, filter, top).GetAwaiter().GetResult());
 }
 /// <summary>
 /// List system topics under an Azure subscription.
 /// </summary>
 /// <remarks>
 /// List all the system topics under an Azure subscription.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='filter'>
 /// The query used to filter the search results using OData syntax. Filtering
 /// is permitted on the 'name' property only and with limited number of OData
 /// operations. These operations are: the 'contains' function as well as the
 /// following logical operations: not, and, or, eq (for equal), and ne (for not
 /// equal). No arithmetic operations are supported. The following is a valid
 /// filter example: $filter=contains(namE, 'PATTERN') and name ne 'PATTERN-1'.
 /// The following is not a valid filter example: $filter=location eq 'westus'.
 /// </param>
 /// <param name='top'>
 /// The number of results to return per page for the list operation. Valid
 /// range for top parameter is 1 to 100. If not specified, the default number
 /// of results to be returned is 20 items per page.
 /// </param>
 public static IPage <SystemTopic> ListBySubscription(this ISystemTopicsOperations operations, string filter = default(string), int?top = default(int?))
 {
     return(operations.ListBySubscriptionAsync(filter, top).GetAwaiter().GetResult());
 }
 /// <summary>
 /// Update a system topic.
 /// </summary>
 /// <remarks>
 /// Asynchronously updates a system topic with the specified parameters.
 /// </remarks>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='resourceGroupName'>
 /// The name of the resource group within the user's subscription.
 /// </param>
 /// <param name='systemTopicName'>
 /// Name of the system topic.
 /// </param>
 /// <param name='systemTopicUpdateParameters'>
 /// SystemTopic update information.
 /// </param>
 public static SystemTopic BeginUpdate(this ISystemTopicsOperations operations, string resourceGroupName, string systemTopicName, SystemTopicUpdateParameters systemTopicUpdateParameters)
 {
     return(operations.BeginUpdateAsync(resourceGroupName, systemTopicName, systemTopicUpdateParameters).GetAwaiter().GetResult());
 }