public void UpdatePattern()
        {
            UseClientFor(async client =>
            {
                var version = "0.1";
                var prebuiltEntitiesToAdd = new string[]
                {
                    "datetimeV2"
                };
                var prebuiltEntitiesAdded = await client.Model.AddPrebuiltAsync(GlobalAppId, version, prebuiltEntitiesToAdd);
                var pattern = new PatternRuleCreateObject {
                    Intent = "None", Pattern = "This is a {datetimeV2}"
                };
                var updatedPattern = new PatternRuleUpdateObject {
                    Intent = "None", Pattern = "This [is] a {datetimeV2}"
                };

                var addResult    = await client.Pattern.AddPatternAsync(GlobalAppId, "0.1", pattern);
                var updateResult = await client.Pattern.UpdatePatternAsync(GlobalAppId, "0.1", addResult.Id.Value, updatedPattern);
                await client.Pattern.DeletePatternAsync(GlobalAppId, "0.1", addResult.Id.Value);
                foreach (var added in prebuiltEntitiesAdded)
                {
                    await client.Model.DeletePrebuiltAsync(GlobalAppId, version, added.Id);
                }

                Assert.NotNull(updateResult);
                Assert.NotNull(updateResult.Id);
                Assert.Equal("None", updateResult.Intent);
                Assert.Equal(addResult.Id, updateResult.Id);
                Assert.NotEqual(Guid.Empty, updateResult.Id);
                Assert.Equal("this [is] a {datetimeV2}", updateResult.Pattern);
            });
        }
 /// <summary>
 /// Updates a pattern in a version of the application.
 /// </summary>
 /// <param name='operations'>
 /// The operations group for this extension method.
 /// </param>
 /// <param name='appId'>
 /// The application ID.
 /// </param>
 /// <param name='versionId'>
 /// The version ID.
 /// </param>
 /// <param name='patternId'>
 /// The pattern ID.
 /// </param>
 /// <param name='pattern'>
 /// An object representing a pattern.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <PatternRuleInfo> UpdatePatternAsync(this IPattern operations, System.Guid appId, string versionId, System.Guid patternId, PatternRuleUpdateObject pattern, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.UpdatePatternWithHttpMessagesAsync(appId, versionId, patternId, pattern, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }