scope 클라우드 가격 책정 구성에 제공된 Microsoft Defender 업데이트. 유효한 범위는 구독 ID 또는 특정 리소스 ID입니다(지원되는 리소스는 'VirtualMachines, VMSS 및 ARC Machines'이며 plan='VirtualMachines' 및 subPlan='P1'에만 해당).
PUT https://management.azure.com/{scopeId}/providers/Microsoft.Security/pricings/{pricingName}?api-version=2024-01-01
URI 매개 변수
Name |
In(다음 안에) |
필수 |
형식 |
Description |
pricingName
|
path |
True
|
string
|
가격 책정 구성의 이름
|
scopeId
|
path |
True
|
string
|
가격 책정의 scope ID입니다. 유효한 범위는 구독(형식: 'subscriptions/{subscriptionId}') 또는 특정 리소스(형식: 'subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/{resourceProviderNamespace}/{resourceType}/{resourceName}) - 지원되는 리소스는 (VirtualMachines)입니다.
|
api-version
|
query |
True
|
string
|
작업에 대한 API 버전
|
요청 본문
Name |
필수 |
형식 |
Description |
properties.pricingTier
|
True
|
pricingTier
|
선택한 scope Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하는 반면 무료 계층은 기본 보안 기능을 제공합니다.
|
properties.enforce
|
|
enforce
|
"False"로 설정하면 이 scope 하위 항목이 이 scope 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False" 설정을 허용). "True"로 설정하면 재정의를 방지하고 이 scope 모든 하위 항목에서 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
properties.extensions
|
|
Extension[]
|
선택 사항입니다. 계획에 따라 제공되는 확장 목록입니다.
|
properties.subPlan
|
|
string
|
둘 이상의 하위 플랜을 사용할 수 있는 경우 표준 가격 책정 구성에 대해 선택된 하위 계획입니다. 각 하위 계획을 사용하면 보안 기능 집합을 사용할 수 있습니다. 지정하지 않으면 전체 계획이 적용됩니다. VirtualMachines 계획의 경우 사용 가능한 하위 계획은 'P1' & 'P2'이며, 리소스 수준의 경우 'P1' 하위 계획만 지원됩니다.
|
응답
Name |
형식 |
Description |
200 OK
|
Pricing
|
성공적으로 업데이트됨
|
201 Created
|
Pricing
|
성공적으로 만들었습니다.
|
Other Status Codes
|
CloudError
|
작업이 실패한 이유를 설명하는 오류 응답입니다.
|
보안
azure_auth
Azure Active Directory OAuth2 Flow
Type:
oauth2
Flow:
implicit
Authorization URL:
https://login.microsoftonline.com/common/oauth2/authorize
Scopes
Name |
Description |
user_impersonation
|
사용자 계정 가장
|
예제
Update pricing on resource (example for VirtualMachines plan)
Sample Request
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard",
"subPlan": "P1"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutResourcePricingByNameVirtualMachines_example.json
*/
/**
* Sample code: Update pricing on resource (example for VirtualMachines plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnResourceExampleForVirtualMachinesPlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse(
"subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1",
"virtualMachines", new PricingInner().withPricingTier(PricingTier.STANDARD).withSubPlan("P1"),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutResourcePricingByNameVirtualMachines_example.json
func ExamplePricingsClient_Update_updatePricingOnResourceExampleForVirtualMachinesPlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1", "virtualMachines", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
SubPlan: to.Ptr("P1"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("virtualMachines"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// Inherited: to.Ptr(armsecurity.InheritedFalse),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// SubPlan: to.Ptr("P1"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledFalse),
// },
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutResourcePricingByNameVirtualMachines_example.json
*/
async function updatePricingOnResourceExampleForVirtualMachinesPlan() {
const scopeId =
"subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1";
const pricingName = "virtualMachines";
const pricing = { pricingTier: "Standard", subPlan: "P1" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample Response
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines",
"name": "virtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P1",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"inherited": "False",
"inheritedFrom": null,
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/resourceGroups/DEMO/providers/Microsoft.Compute/virtualMachines/VM-1/providers/Microsoft.Security/pricings/virtualMachines",
"name": "virtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P1",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"inherited": "False",
"inheritedFrom": null,
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{'Key':'TestKey1','Value':'TestValue1'},{'Key':'TestKey2','Value':'TestValue2'}]"
}
}
]
}
}
Update pricing on subscription (example for CloudPosture plan)
Sample Request
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingByName_example.json
*/
/**
* Sample code: Update pricing on subscription (example for CloudPosture plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForCloudPosturePlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture",
new PricingInner().withPricingTier(PricingTier.STANDARD), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByName_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForCloudPosturePlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("CloudPosture"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceFalse),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("AgentlessDiscoveryForKubernetes"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("ContainerRegistriesVulnerabilityAssessments"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("EntraPermissionsManagement"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByName_example.json
*/
async function updatePricingOnSubscriptionExampleForCloudPosturePlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "CloudPosture";
const pricing = { pricingTier: "Standard" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample Response
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
Update pricing on subscription (example for CloudPosture plan) - partial success
Sample Request
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingByNamePartialSuccess_example.json
*/
/**
* Sample code: Update pricing on subscription (example for CloudPosture plan) - partial success.
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture",
new PricingInner().withPricingTier(PricingTier.STANDARD), com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByNamePartialSuccess_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "CloudPosture", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("CloudPosture"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceFalse),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("AgentlessVmScanning"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed find dedicated first party application client ID for extension"),
// },
// },
// {
// Name: to.Ptr("AgentlessDiscoveryForKubernetes"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"),
// },
// },
// {
// Name: to.Ptr("SensitiveDataDiscovery"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeFailed),
// Message: to.Ptr("Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"),
// },
// },
// {
// Name: to.Ptr("ContainerRegistriesVulnerabilityAssessments"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// },
// {
// Name: to.Ptr("EntraPermissionsManagement"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingByNamePartialSuccess_example.json
*/
async function updatePricingOnSubscriptionExampleForCloudPosturePlanPartialSuccess() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "CloudPosture";
const pricing = { pricingTier: "Standard" };
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample Response
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed find dedicated first party application client ID for extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/CloudPosture",
"name": "CloudPosture",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "False",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed find dedicated first party application client ID for extension"
}
},
{
"name": "AgentlessDiscoveryForKubernetes",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {d5a2ae44-610b-4500-93be-660a0c5f5ca6} to {identityName} for plan"
}
},
{
"name": "SensitiveDataDiscovery",
"isEnabled": "True",
"operationStatus": {
"code": "Failed",
"message": "Failed assigning roles {f58310d9-a9f6-439a-9e8d-f62e7b41a168} to {identityName} for plan"
}
},
{
"name": "ContainerRegistriesVulnerabilityAssessments",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
},
{
"name": "EntraPermissionsManagement",
"isEnabled": "True",
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
Update pricing on subscription (example for VirtualMachines plan)
Sample Request
PUT https://management.azure.com/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines?api-version=2024-01-01
{
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"enforce": "True"
}
}
import com.azure.resourcemanager.security.fluent.models.PricingInner;
import com.azure.resourcemanager.security.models.Enforce;
import com.azure.resourcemanager.security.models.PricingTier;
/**
* Samples for Pricings Update.
*/
public final class Main {
/*
* x-ms-original-file:
* specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/
* PutPricingVMsByName_example.json
*/
/**
* Sample code: Update pricing on subscription (example for VirtualMachines plan).
*
* @param manager Entry point to SecurityManager.
*/
public static void updatePricingOnSubscriptionExampleForVirtualMachinesPlan(
com.azure.resourcemanager.security.SecurityManager manager) {
manager.pricings().updateWithResponse("subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "VirtualMachines",
new PricingInner().withPricingTier(PricingTier.STANDARD).withSubPlan("P2").withEnforce(Enforce.TRUE),
com.azure.core.util.Context.NONE);
}
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
package armsecurity_test
import (
"context"
"log"
"github.com/Azure/azure-sdk-for-go/sdk/azcore/to"
"github.com/Azure/azure-sdk-for-go/sdk/azidentity"
"github.com/Azure/azure-sdk-for-go/sdk/resourcemanager/security/armsecurity"
)
// Generated from example definition: https://github.com/Azure/azure-rest-api-specs/blob/9ac34f238dd6b9071f486b57e9f9f1a0c43ec6f6/specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingVMsByName_example.json
func ExamplePricingsClient_Update_updatePricingOnSubscriptionExampleForVirtualMachinesPlan() {
cred, err := azidentity.NewDefaultAzureCredential(nil)
if err != nil {
log.Fatalf("failed to obtain a credential: %v", err)
}
ctx := context.Background()
clientFactory, err := armsecurity.NewClientFactory("<subscription-id>", cred, nil)
if err != nil {
log.Fatalf("failed to create client: %v", err)
}
res, err := clientFactory.NewPricingsClient().Update(ctx, "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23", "VirtualMachines", armsecurity.Pricing{
Properties: &armsecurity.PricingProperties{
Enforce: to.Ptr(armsecurity.EnforceTrue),
PricingTier: to.Ptr(armsecurity.PricingTierStandard),
SubPlan: to.Ptr("P2"),
},
}, nil)
if err != nil {
log.Fatalf("failed to finish the request: %v", err)
}
// You could use response here. We use blank identifier for just demo purposes.
_ = res
// If the HTTP response code is 200 as defined in example definition, your response structure would look as follows. Please pay attention that all the values in the output are fake values for just demo purposes.
// res.Pricing = armsecurity.Pricing{
// Name: to.Ptr("VirtualMachines"),
// Type: to.Ptr("Microsoft.Security/pricings"),
// ID: to.Ptr("/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines"),
// Properties: &armsecurity.PricingProperties{
// EnablementTime: to.Ptr(func() time.Time { t, _ := time.Parse(time.RFC3339Nano, "2023-03-01T12:42:42.192Z"); return t}()),
// Enforce: to.Ptr(armsecurity.EnforceTrue),
// FreeTrialRemainingTime: to.Ptr("PT0S"),
// PricingTier: to.Ptr(armsecurity.PricingTierStandard),
// ResourcesCoverageStatus: to.Ptr(armsecurity.ResourcesCoverageStatusFullyCovered),
// SubPlan: to.Ptr("P2"),
// Extensions: []*armsecurity.Extension{
// {
// Name: to.Ptr("MdeDesignatedSubscription"),
// IsEnabled: to.Ptr(armsecurity.IsEnabledFalse),
// },
// {
// Name: to.Ptr("AgentlessVmScanning"),
// AdditionalExtensionProperties: map[string]any{
// "ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]",
// },
// IsEnabled: to.Ptr(armsecurity.IsEnabledTrue),
// OperationStatus: &armsecurity.OperationStatusAutoGenerated{
// Code: to.Ptr(armsecurity.CodeSucceeded),
// Message: to.Ptr("Successfully enabled extension"),
// },
// }},
// },
// }
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
const { SecurityCenter } = require("@azure/arm-security");
const { DefaultAzureCredential } = require("@azure/identity");
/**
* This sample demonstrates how to Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
*
* @summary Updates a provided Microsoft Defender for Cloud pricing configuration in the scope. Valid scopes are: subscription id or a specific resource id (Supported resources are: 'VirtualMachines, VMSS and ARC Machines' and only for plan='VirtualMachines' and subPlan='P1').
* x-ms-original-file: specification/security/resource-manager/Microsoft.Security/stable/2024-01-01/examples/Pricings/PutPricingVMsByName_example.json
*/
async function updatePricingOnSubscriptionExampleForVirtualMachinesPlan() {
const scopeId = "subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23";
const pricingName = "VirtualMachines";
const pricing = {
enforce: "True",
pricingTier: "Standard",
subPlan: "P2",
};
const credential = new DefaultAzureCredential();
const client = new SecurityCenter(credential);
const result = await client.pricings.update(scopeId, pricingName, pricing);
console.log(result);
}
To use the Azure SDK library in your project, see this documentation. To provide feedback on this code sample, open a GitHub issue
Sample Response
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines",
"name": "VirtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "True",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
},
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
{
"id": "/subscriptions/20ff7fc3-e762-44dd-bd96-b71116dcdc23/providers/Microsoft.Security/pricings/VirtualMachines",
"name": "VirtualMachines",
"type": "Microsoft.Security/pricings",
"properties": {
"pricingTier": "Standard",
"subPlan": "P2",
"freeTrialRemainingTime": "PT0S",
"enablementTime": "2023-03-01T12:42:42.1921106Z",
"enforce": "True",
"resourcesCoverageStatus": "FullyCovered",
"extensions": [
{
"name": "MdeDesignatedSubscription",
"isEnabled": "False"
},
{
"name": "AgentlessVmScanning",
"isEnabled": "True",
"additionalExtensionProperties": {
"ExclusionTags": "[{\"Key\":\"TestKey1\",\"Value\":\"TestValue1\"},{\"Key\":\"TestKey2\",\"Value\":\"TestValue2\"}]"
},
"operationStatus": {
"code": "Succeeded",
"message": "Successfully enabled extension"
}
}
]
}
}
정의
Name |
Description |
CloudError
|
실패한 작업에 대한 오류 세부 정보를 반환하는 모든 Azure Resource Manager API에 대한 일반적인 오류 응답입니다. OData 오류 응답 형식도 따릅니다.
|
CloudErrorBody
|
오류 세부 정보입니다.
|
code
|
작업 상태 코드입니다.
|
enforce
|
"False"로 설정하면 이 scope 하위 항목이 이 scope 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False"를 설정할 수 있습니다). "True"로 설정하면 재정의를 방지하고 이 scope 모든 하위 항목에 대해 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
ErrorAdditionalInfo
|
리소스 관리 오류 추가 정보입니다.
|
Extension
|
플랜의 확장 속성
|
inherited
|
"inherited" = "True"는 현재 scope 부모로부터 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 scope ID가 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 scope 명시적으로 설정된 자체 가격 책정 구성을 가지며 부모로부터 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
isEnabled
|
확장을 사용할 수 있는지 여부를 나타냅니다.
|
OperationStatus
|
확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태.
|
Pricing
|
클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하지만 무료 계층은 기본 보안 기능을 제공합니다.
|
pricingTier
|
선택한 scope Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하지만 무료 계층은 기본 보안 기능을 제공합니다.
|
resourcesCoverageStatus
|
이 필드는 구독 수준에서만 사용할 수 있으며 구독에서 리소스의 적용 범위 상태 반영합니다. 참고: "pricingTier" 필드는 구독의 플랜 상태 반영합니다. 그러나 계획 상태 리소스 수준에서 정의할 수도 있으므로 구독의 계획 상태 리소스 상태 간에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위 상태 나타내는 데 도움이 됩니다.
|
CloudError
실패한 작업에 대한 오류 세부 정보를 반환하는 모든 Azure Resource Manager API에 대한 일반적인 오류 응답입니다. OData 오류 응답 형식도 따릅니다.
Name |
형식 |
Description |
error.additionalInfo
|
ErrorAdditionalInfo[]
|
오류 추가 정보입니다.
|
error.code
|
string
|
오류 코드입니다.
|
error.details
|
CloudErrorBody[]
|
오류 세부 정보입니다.
|
error.message
|
string
|
오류 메시지입니다.
|
error.target
|
string
|
오류 대상입니다.
|
CloudErrorBody
오류 세부 정보입니다.
Name |
형식 |
Description |
additionalInfo
|
ErrorAdditionalInfo[]
|
오류 추가 정보입니다.
|
code
|
string
|
오류 코드입니다.
|
details
|
CloudErrorBody[]
|
오류 세부 정보입니다.
|
message
|
string
|
오류 메시지입니다.
|
target
|
string
|
오류 대상입니다.
|
code
작업 상태 코드입니다.
Name |
형식 |
Description |
Failed
|
string
|
확장이 생성/업데이트되지 않았습니다. 자세한 내용은 작업 상태 메시지를 참조하세요.
|
Succeeded
|
string
|
확장이 생성/업데이트되었습니다.
|
enforce
"False"로 설정하면 이 scope 하위 항목이 이 scope 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False"를 설정할 수 있습니다). "True"로 설정하면 재정의를 방지하고 이 scope 모든 하위 항목에 대해 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
Name |
형식 |
Description |
False
|
string
|
이 scope 하위 항목이 이 scope 설정된 가격 책정 구성을 재정의할 수 있도록 허용합니다(inherited="False" 설정 허용).
|
True
|
string
|
재정의를 방지하고 현재 scope 가격 책정 구성을 모든 하위 항목에 강제로 적용합니다.
|
ErrorAdditionalInfo
리소스 관리 오류 추가 정보입니다.
Name |
형식 |
Description |
info
|
object
|
추가 정보입니다.
|
type
|
string
|
추가 정보 유형입니다.
|
Extension
플랜의 확장 속성
Name |
형식 |
Description |
additionalExtensionProperties
|
|
확장과 연결된 속성 값입니다.
|
isEnabled
|
isEnabled
|
확장을 사용할 수 있는지 여부를 나타냅니다.
|
name
|
string
|
확장 프로그램 이름입니다. 지원되는 값은 다음과 같습니다.
AgentlessDiscoveryForKubernetes - Kubernetes 클러스터 아키텍처, 워크로드 개체 및 설정에 대한 정보의 API 기반 검색입니다. 클라우드 보안 탐색기의 일부로 Kubernetes 인벤토리, ID 및 네트워크 노출 검색, 공격 경로 분석 및 위험 헌팅에 필요합니다.
CloudPosture 플랜에 사용할 수 있습니다.
OnUploadMalwareScanning - 구독 내의 각 스토리지 계정에 대해 매월 검사할 GB를 제한합니다. 지정된 스토리지 계정에서 이 제한에 도달하면 Blob은 현재 월 동안 검색되지 않습니다.
StorageAccounts 계획에 사용할 수 있습니다.
SensitiveDataDiscovery - 중요한 데이터 검색은 자격 증명, 신용 카드 등과 같은 중요한 데이터를 사용하여 Blob Storage 컨테이너를 식별하여 보안 이벤트의 우선 순위를 지정하고 조사하는 데 도움을 줍니다.
StorageAccounts 및 CloudPosture 계획에 사용할 수 있습니다.
ContainerRegistriesVulnerabilityAssessments - 컨테이너 레지스트리에 저장된 이미지에 대한 취약성 관리를 제공합니다.
CloudPosture 및 컨테이너 계획에 사용할 수 있습니다.
|
operationStatus
|
OperationStatus
|
선택 사항입니다. 확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태.
|
inherited
"inherited" = "True"는 현재 scope 부모로부터 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 scope ID가 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 scope 명시적으로 설정된 자체 가격 책정 구성을 가지며 부모로부터 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
Name |
형식 |
Description |
False
|
string
|
현재 scope 자체 가격 책정 구성을 설정하고 부모로부터 상속하지 않음을 나타냅니다.
|
True
|
string
|
현재 scope 부모로부터 가격 책정 구성을 상속하고 있음을 나타냅니다.
|
isEnabled
확장을 사용할 수 있는지 여부를 나타냅니다.
Name |
형식 |
Description |
False
|
string
|
확장이 비활성화되었음을 나타냅니다.
|
True
|
string
|
확장이 사용됨을 나타냅니다.
|
OperationStatus
확장의 사용/사용 안 함 작업의 성공/실패를 설명하는 상태.
Name |
형식 |
Description |
code
|
code
|
작업 상태 코드입니다.
|
message
|
string
|
작업의 성공/실패에 대한 추가 정보입니다.
|
Pricing
클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하지만 무료 계층은 기본 보안 기능을 제공합니다.
Name |
형식 |
Description |
id
|
string
|
리소스 ID
|
name
|
string
|
리소스 이름
|
properties.deprecated
|
boolean
|
선택 사항입니다. True이면 계획이 더 이상 사용되지 않습니다. 대체 계획이 있는 경우 속성에 표시됩니다.replacedBy
|
properties.enablementTime
|
string
|
선택 사항입니다. Standard 가 인 경우 pricingTier 이 속성은 가 마지막으로 pricingTier 로 설정된 Standard 날짜를 보유합니다(예: 2023-03-01T12:42:42.1921106Z).
|
properties.enforce
|
enforce
|
"False"로 설정하면 이 scope 하위 항목이 이 scope 설정된 가격 책정 구성을 재정의할 수 있습니다(inherited="False"를 설정할 수 있습니다). "True"로 설정하면 재정의를 방지하고 이 scope 모든 하위 항목에 대해 이 가격 책정 구성을 강제로 적용합니다. 이 필드는 구독 수준 가격 책정에만 사용할 수 있습니다.
|
properties.extensions
|
Extension[]
|
선택 사항입니다. 계획에 따라 제공되는 확장 목록입니다.
|
properties.freeTrialRemainingTime
|
string
|
구독 평가판 기간에 남은 기간(ISO 8601 형식(예: P3Y6M4DT12H30M5S)입니다.
|
properties.inherited
|
inherited
|
"inherited" = "True"는 현재 scope 부모로부터 가격 책정 구성을 상속한다는 것을 나타냅니다. 상속된 구성을 제공하는 부모 scope ID가 "inheritedFrom" 필드에 표시됩니다. 반면에 "상속됨" = "False"는 현재 scope 명시적으로 설정된 자체 가격 책정 구성을 가지며 부모로부터 상속되지 않음을 나타냅니다. 이 필드는 읽기 전용이며 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
properties.inheritedFrom
|
string
|
상속된 scope ID입니다. 상속되지 않으면 "Null"입니다. 이 필드는 리소스 수준 가격 책정에만 사용할 수 있습니다.
|
properties.pricingTier
|
pricingTier
|
선택한 scope Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하지만 무료 계층은 기본 보안 기능을 제공합니다.
|
properties.replacedBy
|
string[]
|
선택 사항입니다. 이 계획을 대체하는 계획 목록입니다. 이 속성은 이 계획이 사용되지 않는 경우에만 존재합니다.
|
properties.resourcesCoverageStatus
|
resourcesCoverageStatus
|
이 필드는 구독 수준에서만 사용할 수 있으며 구독에서 리소스의 적용 범위 상태 반영합니다. 참고: "pricingTier" 필드는 구독의 플랜 상태 반영합니다. 그러나 계획 상태 리소스 수준에서 정의할 수도 있으므로 구독의 계획 상태 리소스 상태 간에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위 상태 나타내는 데 도움이 됩니다.
|
properties.subPlan
|
string
|
둘 이상의 하위 플랜을 사용할 수 있는 경우 표준 가격 책정 구성에 대해 선택된 하위 계획입니다. 각 하위 계획은 보안 기능 집합을 사용하도록 설정합니다. 지정하지 않으면 전체 계획이 적용됩니다. VirtualMachines 계획의 경우 사용 가능한 하위 계획은 'P1' & 'P2'이며, 리소스 수준의 경우 'P1' 하위 계획만 지원됩니다.
|
type
|
string
|
리소스 유형
|
pricingTier
선택한 scope Defender 계획을 사용할 수 있는지 여부를 나타냅니다. 클라우드용 Microsoft Defender 무료 및 표준의 두 가지 가격 책정 계층으로 제공됩니다. 표준 계층은 고급 보안 기능을 제공하지만 무료 계층은 기본 보안 기능을 제공합니다.
Name |
형식 |
Description |
Free
|
string
|
기본 보안 기능을 사용하여 클라우드용 무료 Microsoft Defender 환경 받기
|
Standard
|
string
|
고급 보안 기능을 사용하여 클라우드용 표준 Microsoft Defender 환경 가져오기
|
resourcesCoverageStatus
이 필드는 구독 수준에서만 사용할 수 있으며 구독에서 리소스의 적용 범위 상태 반영합니다. 참고: "pricingTier" 필드는 구독의 플랜 상태 반영합니다. 그러나 계획 상태 리소스 수준에서 정의할 수도 있으므로 구독의 계획 상태 리소스 상태 간에 정렬이 잘못될 수 있습니다. 이 필드는 리소스의 적용 범위 상태 나타내는 데 도움이 됩니다.
Name |
형식 |
Description |
FullyCovered
|
string
|
이 값은 구독과 연결된 모든 리소스에 Defender 계획이 사용하도록 설정되어 있음을 나타냅니다.
|
NotCovered
|
string
|
이 값은 구독에 있는 모든 리소스에 대해 Defender 계획이 비활성화되었음을 나타냅니다. Defender 계획에 의해 보호되는 리소스는 없습니다.
|
PartiallyCovered
|
string
|
이 값은 구독 아래의 일부 리소스가 Defender 계획을 사용하도록 설정한 반면 다른 리소스는 사용하지 않도록 설정했음을 나타냅니다. 리소스 간에 상태 혼합된 적용 범위가 있습니다.
|