Exemple #1
0
        public override void ExecuteCmdlet()
        {
            switch (ParameterSetName)
            {
            case ParameterSetNames.ResourceGroupLevelResource:
                break;

            case ParameterSetNames.ResourceId:
                Name = AzureIdUtilities.GetResourceName(ResourceId);
                ResourceGroupName = AzureIdUtilities.GetResourceGroup(ResourceId);
                break;

            case ParameterSetNames.InputObject:
                Name = InputObject.Name;
                ResourceGroupName            = AzureIdUtilities.GetResourceGroup(InputObject.Id);
                Location                     = Location ?? InputObject.Location;
                DisabledDataSource           = DisabledDataSource ?? ((List <string>)InputObject.DisabledDataSources).ToArray();
                DisplayName                  = DisplayName ?? InputObject.DisplayName;
                Export                       = Export ?? ((List <string>)InputObject.Export).ToArray();
                IotHub                       = IotHub ?? ((List <string>)InputObject.IotHubs).ToArray();
                RecommendationsConfiguration = RecommendationsConfiguration ?? ((List <PSRecommendationConfiguration>)InputObject.RecommendationsConfiguration).ToArray();
                Enabled                      = InputObject.Status.ToLower().Equals("enabled");
                Tag = Tag ?? new Hashtable((IDictionary)(InputObject.Tags));
                UnmaskedIpLoggingStatus = UnmaskedIpLoggingStatus ?? InputObject.UnmaskedIpLoggingStatus;
                UserDefinedResource     = UserDefinedResource ?? InputObject.UserDefinedResources;
                Workspace = Workspace ?? InputObject.Workspace;
                break;

            default:
                throw new PSInvalidOperationException();
            }

            IoTSecuritySolutionModel solutionModel = new IoTSecuritySolutionModel
            {
                Location            = Location,
                DisabledDataSources = DisabledDataSource,
                DisplayName         = DisplayName,
                Export  = Export,
                IotHubs = IotHub,
                RecommendationsConfiguration = RecommendationsConfiguration?.CreatePSType(),
                Status = Enabled? "Enabled" : "Disabled",
                Tags   = Tag?.Cast <DictionaryEntry>().ToDictionary(t => (string)t.Key, t => (string)t.Value),
                UnmaskedIpLoggingStatus = UnmaskedIpLoggingStatus,
                UserDefinedResources    = UserDefinedResource?.CreatePSType(),
                Workspace = Workspace
            };

            if (ShouldProcess(Name, VerbsCommon.Set))
            {
                var outputSolution = SecurityCenterClient.IotSecuritySolution.CreateOrUpdateWithHttpMessagesAsync(ResourceGroupName, Name, solutionModel).GetAwaiter().GetResult().Body;
                WriteObject(outputSolution?.ConvertToPSType(), enumerateCollection: false);
            }
        }
        public override void ExecuteCmdlet()
        {
            var name = Name;
            var resourceGroupName = ResourceGroupName;

            switch (ParameterSetName)
            {
            case ParameterSetNames.ResourceGroupLevelResource:
                break;

            case ParameterSetNames.ResourceId:
                Name = AzureIdUtilities.GetResourceName(ResourceId);
                ResourceGroupName = AzureIdUtilities.GetResourceGroup(ResourceId);
                break;

            case ParameterSetNames.InputObject:
                Name = AzureIdUtilities.GetResourceName(InputObject.Id);
                ResourceGroupName            = AzureIdUtilities.GetResourceGroup(InputObject.Id);
                RecommendationsConfiguration = RecommendationsConfiguration ?? ((List <PSRecommendationConfiguration>)InputObject.RecommendationsConfiguration).ToArray();
                Tag = Tag ?? new Hashtable((IDictionary)(InputObject.Tags));
                UserDefinedResource = UserDefinedResource ?? GetValidUserDefinedResources(InputObject.UserDefinedResources);
                break;

            default:
                throw new PSInvalidOperationException();
            }

            UpdateIotSecuritySolutionData solutionData = new UpdateIotSecuritySolutionData(Tag?.Cast <DictionaryEntry>().ToDictionary(t => (string)t.Key, t => (string)t.Value),
                                                                                           UserDefinedResource?.CreatePSType(),
                                                                                           RecommendationsConfiguration?.CreatePSType());

            if (ShouldProcess(Name, "Update"))
            {
                var outputSolution = SecurityCenterClient.IotSecuritySolution.UpdateWithHttpMessagesAsync(ResourceGroupName, Name, solutionData).GetAwaiter().GetResult().Body;
                WriteObject(outputSolution?.ConvertToPSType(), enumerateCollection: false);
            }
        }