예제 #1
0
        public void CognitiveServicesCreateAccountErrorTest()
        {
            var handler = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                var resourcesClient             = CognitiveServicesManagementTestUtilities.GetResourceManagementClient(context, handler);
                var cognitiveServicesMgmtClient = CognitiveServicesManagementTestUtilities.GetCognitiveServicesManagementClient(context, handler);

                // Create resource group
                var rgname = CognitiveServicesManagementTestUtilities.CreateResourceGroup(resourcesClient);

                var accountName = TestUtilities.GenerateName("csa");
                var parameters  = new CognitiveServicesAccountCreateParameters
                {
                    Sku = new Sku {
                        Name = "F0"
                    },
                    Kind       = "ComputerVision",
                    Location   = CognitiveServicesManagementTestUtilities.DefaultLocation,
                    Properties = new object(),
                };

                CognitiveServicesManagementTestUtilities.ValidateExpectedException(
                    () => cognitiveServicesMgmtClient.Accounts.Create("NotExistedRG", accountName, parameters),
                    "ResourceGroupNotFound");

                parameters.Location = "BLA";
                CognitiveServicesManagementTestUtilities.ValidateExpectedException(
                    () => cognitiveServicesMgmtClient.Accounts.Create(rgname, accountName, parameters),
                    "LocationNotAvailableForResourceType");
            }
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            RunCmdLet(() =>
            {
                CognitiveServicesAccountCreateParameters createParameters = new CognitiveServicesAccountCreateParameters()
                {
                    Location   = this.Location,
                    Kind       = this.Type, // must have value, mandatory parameter
                    Sku        = new Sku(this.SkuName),
                    Tags       = TagsConversionHelper.CreateTagDictionary(Tag),
                    Properties = new object(), // Must not be null according to Azure RM spec. Also there is no actual properties to pass, so not exposing it through cmdlet
                };

                if (ShouldProcess(
                        this.Name, string.Format(CultureInfo.CurrentCulture, Resources.NewAccount_ProcessMessage, this.Name, this.Type, this.SkuName, this.Location))
                    ||
                    Force.IsPresent)
                {
                    var createAccountResponse = this.CognitiveServicesClient.CognitiveServicesAccounts.Create(
                        this.ResourceGroupName,
                        this.Name,
                        createParameters);

                    var cognitiveServicesAccount = this.CognitiveServicesClient.CognitiveServicesAccounts.GetProperties(this.ResourceGroupName, this.Name);

                    this.WriteCognitiveServicesAccount(cognitiveServicesAccount);
                }
            });
        }
예제 #3
0
        public void CognitiveServicesAccountMinMaxNameLengthTest()
        {
            var handler = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                var resourcesClient             = CognitiveServicesManagementTestUtilities.GetResourceManagementClient(context, handler);
                var cognitiveServicesMgmtClient = CognitiveServicesManagementTestUtilities.GetCognitiveServicesManagementClient(context, handler);

                // Create resource group
                var rgname = CognitiveServicesManagementTestUtilities.CreateResourceGroup(resourcesClient);

                var parameters = new CognitiveServicesAccountCreateParameters
                {
                    Sku = new Sku {
                        Name = "S0"
                    },
                    Kind       = "Face",
                    Location   = CognitiveServicesManagementTestUtilities.DefaultLocation,
                    Properties = new object(),
                };

                var minName = "zz";
                var maxName = "AcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcadAcad";

                var minAccount = cognitiveServicesMgmtClient.Accounts.Create(rgname, minName, parameters);
                var maxAccount = cognitiveServicesMgmtClient.Accounts.Create(rgname, maxName, parameters);

                Assert.Equal(minName, minAccount.Name);
                Assert.Equal(maxName, maxAccount.Name);
            }
        }
예제 #4
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            RunCmdLet(() =>
            {
                CognitiveServicesAccountCreateParameters createParameters = new CognitiveServicesAccountCreateParameters()
                {
                    Location   = Location,
                    Kind       = Type, // must have value, mandatory parameter
                    Sku        = new Sku(SkuName),
                    Tags       = TagsConversionHelper.CreateTagDictionary(Tag),
                    Properties = string.IsNullOrWhiteSpace(CustomSubdomainName) ?
                                 new object():
                                 JToken.Parse(string.Format(
                                                  CultureInfo.InvariantCulture,
                                                  "{{\"customSubDomainName\":\"{0}\"}}",
                                                  CustomSubdomainName))
                };

                if (ShouldProcess(
                        Name, string.Format(CultureInfo.CurrentCulture, Resources.NewAccount_ProcessMessage, Name, Type, SkuName, Location)))
                {
                    if (Type.StartsWith("Bing.", StringComparison.InvariantCultureIgnoreCase))
                    {
                        if (Force.IsPresent)
                        {
                            WriteWarning(Resources.NewAccount_Notice);
                        }
                        else
                        {
                            bool yesToAll = false, noToAll = false;
                            if (!ShouldContinue(Resources.NewAccount_Notice, "Notice", true, ref yesToAll, ref noToAll))
                            {
                                return;
                            }
                        }
                    }
                    try
                    {
                        CognitiveServicesAccount createAccountResponse = CognitiveServicesClient.Accounts.Create(
                            ResourceGroupName,
                            Name,
                            createParameters);
                    }
                    catch (Exception ex)
                    {
                        // Give users a specific message says `Failed to create Cognitive Services account.`
                        // Details should able be found in the exception.
                        throw new Exception("Failed to create Cognitive Services account.", ex);
                    }

                    CognitiveServicesAccount cognitiveServicesAccount = CognitiveServicesClient.Accounts.GetProperties(ResourceGroupName, Name);
                    WriteCognitiveServicesAccount(cognitiveServicesAccount);
                }
            });
        }
예제 #5
0
        static void create_resource(CognitiveServicesManagementClient client, string resource_name, string kind, string sku_name, string location)
        {
            Console.WriteLine("Creating resource: " + resource_name + "...");
            // The parameter "properties" must be an empty object.
            var parameters = new CognitiveServicesAccountCreateParameters(new Sku(sku_name), kind, location, new object());
            var result     = client.Accounts.Create(resource_group_name, resource_name, parameters);

            Console.WriteLine("Resource created.");
            Console.WriteLine("ID: " + result.Id);
            Console.WriteLine("Provisioning state: " + result.ProvisioningState);
            Console.WriteLine();
        }
예제 #6
0
        public static string CreateCognitiveServicesAccount(CognitiveServicesManagementClient cognitiveServicesMgmtClient, string rgname, string kind = null)
        {
            string accountName = TestUtilities.GenerateName("csa");
            CognitiveServicesAccountCreateParameters parameters = GetDefaultCognitiveServicesAccountParameters();

            if (!string.IsNullOrEmpty(kind))
            {
                parameters.Kind = kind;
            }
            var createRequest2 = cognitiveServicesMgmtClient.Accounts.Create(rgname, accountName, parameters);

            return(accountName);
        }
예제 #7
0
        public static CognitiveServicesAccountCreateParameters GetDefaultCognitiveServicesAccountParameters()
        {
            CognitiveServicesAccountCreateParameters account = new CognitiveServicesAccountCreateParameters
            {
                Location = DefaultLocation,
                Tags     = DefaultTags,
                Sku      = new Microsoft.Azure.Management.CognitiveServices.Models.Sku {
                    Name = DefaultSkuName
                },
                Kind       = DefaultKind,
                Properties = new object(),
            };

            return(account);
        }
예제 #8
0
        public static CognitiveServicesAccountCreateParameters GetDefaultCognitiveServicesAccountParameters()
        {
            CognitiveServicesAccountCreateParameters account = new CognitiveServicesAccountCreateParameters
            {
                Location = DefaultLocation,
                Tags     = DefaultTags,
                Sku      = new Sku {
                    Name = DefaultSkuName
                },
                Kind       = DefaultKind,
                Properties = new object(),
            };

            return(account);
        }
예제 #9
0
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            RunCmdLet(() =>
            {
                CognitiveServicesAccountCreateParameters createParameters = new CognitiveServicesAccountCreateParameters()
                {
                    Location   = Location,
                    Kind       = Type, // must have value, mandatory parameter
                    Sku        = new Sku(SkuName),
                    Tags       = TagsConversionHelper.CreateTagDictionary(Tag),
                    Properties = string.IsNullOrWhiteSpace(CustomSubdomainName) ?
                                 new object():
                                 JToken.Parse(string.Format(
                                                  CultureInfo.InvariantCulture,
                                                  "{{\"customSubDomainName\":\"{0}\"}}",
                                                  CustomSubdomainName))
                };

                if (ShouldProcess(
                        Name, string.Format(CultureInfo.CurrentCulture, Resources.NewAccount_ProcessMessage, Name, Type, SkuName, Location)))
                {
                    if (Force.IsPresent)
                    {
                        WriteWarning(Resources.NewAccount_Notice);
                    }
                    else
                    {
                        bool yesToAll = false, noToAll = false;
                        if (!ShouldContinue(Resources.NewAccount_Notice, "Notice", true, ref yesToAll, ref noToAll))
                        {
                            return;
                        }
                    }

                    CognitiveServicesAccount createAccountResponse = CognitiveServicesClient.Accounts.Create(
                        ResourceGroupName,
                        Name,
                        createParameters);
                    CognitiveServicesAccount cognitiveServicesAccount = CognitiveServicesClient.Accounts.GetProperties(ResourceGroupName, Name);
                    WriteCognitiveServicesAccount(cognitiveServicesAccount);
                }
            });
        }
예제 #10
0
        public void CognitiveServicesCreateAccountErrorTest2()
        {
            var handler = new RecordedDelegatingHandler {
                StatusCodeToReturn = HttpStatusCode.OK
            };

            using (MockContext context = MockContext.Start(this.GetType().FullName))
            {
                var resourcesClient             = CognitiveServicesManagementTestUtilities.GetResourceManagementClient(context, handler);
                var cognitiveServicesMgmtClient = CognitiveServicesManagementTestUtilities.GetCognitiveServicesManagementClient(context, handler);

                // Create resource group
                var rgname = CognitiveServicesManagementTestUtilities.CreateResourceGroup(resourcesClient);

                var accountName     = TestUtilities.GenerateName("csa");
                var nonExistApiPara = new CognitiveServicesAccountCreateParameters
                {
                    Sku = new Sku {
                        Name = "F0"
                    },
                    Kind       = "NonExistAPI",
                    Location   = CognitiveServicesManagementTestUtilities.DefaultLocation,
                    Properties = new object(),
                };

                var nonExistSkuPara = new CognitiveServicesAccountCreateParameters
                {
                    Sku = new Sku {
                        Name = "N0"
                    },
                    Kind       = "Face",
                    Location   = CognitiveServicesManagementTestUtilities.DefaultLocation,
                    Properties = new object(),
                };

                CognitiveServicesManagementTestUtilities.ValidateExpectedException(
                    () => cognitiveServicesMgmtClient.Accounts.Create(rgname, accountName, nonExistApiPara),
                    "InvalidApiSetId");

                CognitiveServicesManagementTestUtilities.ValidateExpectedException(
                    () => cognitiveServicesMgmtClient.Accounts.Create(rgname, accountName, nonExistSkuPara),
                    "InvalidSkuId");
            }
        }
예제 #11
0
        public static CognitiveServicesAccount CreateAndValidateAccountWithOnlyRequiredParameters(CognitiveServicesManagementClient cognitiveServicesMgmtClient, string rgName, string skuName, string accountType = "TextAnalytics", string location = null)
        {
            // Create account with only required params
            var accountName = TestUtilities.GenerateName("csa");
            var parameters  = new CognitiveServicesAccountCreateParameters
            {
                Sku = new Microsoft.Azure.Management.CognitiveServices.Models.Sku {
                    Name = skuName
                },
                Kind       = accountType,
                Location   = location ?? DefaultLocation,
                Properties = new object(),
            };
            var account = cognitiveServicesMgmtClient.Accounts.Create(rgName, accountName, parameters);

            VerifyAccountProperties(account, false, accountType, skuName, location ?? DefaultLocation);

            return(account);
        }
예제 #12
0
        public static CognitiveServicesAccount CreateAndValidateAccountWithOnlyRequiredParameters(CognitiveServicesManagementClient cognitiveServicesMgmtClient, string rgName, SkuName skuName, Kind accountType = Kind.Recommendations)
        {
            // Create account with only required params
            var accountName = TestUtilities.GenerateName("csa");
            var parameters  = new CognitiveServicesAccountCreateParameters
            {
                Sku = new Sku {
                    Name = skuName
                },
                Kind       = accountType,
                Location   = CognitiveServicesManagementTestUtilities.DefaultLocation,
                Properties = new object(),
            };
            var account = cognitiveServicesMgmtClient.CognitiveServicesAccounts.Create(rgName, accountName, parameters);

            CognitiveServicesManagementTestUtilities.VerifyAccountProperties(account, false);
            Assert.Equal(skuName, account.Sku.Name);
            Assert.Equal(accountType.ToString(), account.Kind);

            return(account);
        }
        public override void ExecuteCmdlet()
        {
            base.ExecuteCmdlet();

            RunCmdLet(() =>
            {
                CognitiveServicesAccountCreateParameters createParameters = new CognitiveServicesAccountCreateParameters()
                {
                    Location = this.Location,
                    Kind = ParseAccountKind(this.Type).Value, // must have value, mandatory parameter
                    Sku = new Sku(ParseSkuName(this.SkuName)),
                    Tags = TagsConversionHelper.CreateTagDictionary(Tag),
                    Properties = new object(), // Must not be null according to Azure RM spec. Also there is no actual properties to pass, so not exposing it through cmdlet
                };

                if (ShouldProcess(
                    this.Name, string.Format(CultureInfo.CurrentCulture, Resources.NewAccount_ProcessMessage, this.Name, this.Type, this.SkuName, this.Location))
                    ||
                    Force.IsPresent)
                {

                    var createAccountResponse = this.CognitiveServicesClient.CognitiveServicesAccounts.Create(
                                    this.ResourceGroupName,
                                    this.Name,
                                    createParameters);

                    var cognitiveServicesAccount = this.CognitiveServicesClient.CognitiveServicesAccounts.GetProperties(this.ResourceGroupName, this.Name);

                    this.WriteCognitiveServicesAccount(cognitiveServicesAccount);
                }
            });
        }
예제 #14
0
 /// <summary>
 /// Create Cognitive Services Account. Accounts is a resource group wide
 /// resource type. It holds the keys for developer to access intelligent APIs.
 /// It's also the resource type for billing.
 /// </summary>
 /// <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='accountName'>
 /// The name of Cognitive Services account.
 /// </param>
 /// <param name='parameters'>
 /// The parameters to provide for the created account.
 /// </param>
 /// <param name='cancellationToken'>
 /// The cancellation token.
 /// </param>
 public static async Task <CognitiveServicesAccount> CreateAsync(this IAccountsOperations operations, string resourceGroupName, string accountName, CognitiveServicesAccountCreateParameters parameters, CancellationToken cancellationToken = default(CancellationToken))
 {
     using (var _result = await operations.CreateWithHttpMessagesAsync(resourceGroupName, accountName, parameters, null, cancellationToken).ConfigureAwait(false))
     {
         return(_result.Body);
     }
 }
예제 #15
0
 /// <summary>
 /// Create Cognitive Services Account. Accounts is a resource group wide
 /// resource type. It holds the keys for developer to access intelligent APIs.
 /// It's also the resource type for billing.
 /// </summary>
 /// <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='accountName'>
 /// The name of Cognitive Services account.
 /// </param>
 /// <param name='parameters'>
 /// The parameters to provide for the created account.
 /// </param>
 public static CognitiveServicesAccount Create(this IAccountsOperations operations, string resourceGroupName, string accountName, CognitiveServicesAccountCreateParameters parameters)
 {
     return(operations.CreateAsync(resourceGroupName, accountName, parameters).GetAwaiter().GetResult());
 }
예제 #16
0
 /// <summary>
 /// Create Cognitive Services Account. Accounts is a resource group wide
 /// resource type. It holds the keys for developer to access intelligent
 /// APIs. It's also the resource type for billing.
 /// </summary>
 /// <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='accountName'>
 /// The name of the cognitive services account within the specified resource
 /// group. Cognitive Services account names must be between 3 and 24
 /// characters in length and use numbers and lower-case letters only.
 /// </param>
 /// <param name='parameters'>
 /// The parameters to provide for the created account.
 /// </param>
 public static CognitiveServicesAccount Create(this ICognitiveServicesAccountsOperations operations, string resourceGroupName, string accountName, CognitiveServicesAccountCreateParameters parameters)
 {
     return(Task.Factory.StartNew(s => ((ICognitiveServicesAccountsOperations)s).CreateAsync(resourceGroupName, accountName, parameters), operations, CancellationToken.None, TaskCreationOptions.None, TaskScheduler.Default).Unwrap().GetAwaiter().GetResult());
 }