azure-native.purview.Account
Explore with Pulumi AI
Account resource API Version: 2020-12-01-preview.
Example Usage
Accounts_CreateOrUpdate
using System.Collections.Generic;
using System.Linq;
using Pulumi;
using AzureNative = Pulumi.AzureNative;
return await Deployment.RunAsync(() =>
{
var account = new AzureNative.Purview.Account("account", new()
{
AccountName = "account1",
Location = "West US 2",
ManagedResourceGroupName = "custom-rgname",
ResourceGroupName = "SampleResourceGroup",
});
});
package main
import (
purview "github.com/pulumi/pulumi-azure-native-sdk/purview"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
_, err := purview.NewAccount(ctx, "account", &purview.AccountArgs{
AccountName: pulumi.String("account1"),
Location: pulumi.String("West US 2"),
ManagedResourceGroupName: pulumi.String("custom-rgname"),
ResourceGroupName: pulumi.String("SampleResourceGroup"),
})
if err != nil {
return err
}
return nil
})
}
package generated_program;
import com.pulumi.Context;
import com.pulumi.Pulumi;
import com.pulumi.core.Output;
import com.pulumi.azurenative.purview.Account;
import com.pulumi.azurenative.purview.AccountArgs;
import java.util.List;
import java.util.ArrayList;
import java.util.Map;
import java.io.File;
import java.nio.file.Files;
import java.nio.file.Paths;
public class App {
public static void main(String[] args) {
Pulumi.run(App::stack);
}
public static void stack(Context ctx) {
var account = new Account("account", AccountArgs.builder()
.accountName("account1")
.location("West US 2")
.managedResourceGroupName("custom-rgname")
.resourceGroupName("SampleResourceGroup")
.build());
}
}
import pulumi
import pulumi_azure_native as azure_native
account = azure_native.purview.Account("account",
account_name="account1",
location="West US 2",
managed_resource_group_name="custom-rgname",
resource_group_name="SampleResourceGroup")
import * as pulumi from "@pulumi/pulumi";
import * as azure_native from "@pulumi/azure-native";
const account = new azure_native.purview.Account("account", {
accountName: "account1",
location: "West US 2",
managedResourceGroupName: "custom-rgname",
resourceGroupName: "SampleResourceGroup",
});
resources:
account:
type: azure-native:purview:Account
properties:
accountName: account1
location: West US 2
managedResourceGroupName: custom-rgname
resourceGroupName: SampleResourceGroup
Create Account Resource
Resources are created with functions called constructors. To learn more about declaring and configuring resources, see Resources.
Constructor syntax
new Account(name: string, args: AccountArgs, opts?: CustomResourceOptions);
@overload
def Account(resource_name: str,
args: AccountArgs,
opts: Optional[ResourceOptions] = None)
@overload
def Account(resource_name: str,
opts: Optional[ResourceOptions] = None,
resource_group_name: Optional[str] = None,
account_name: Optional[str] = None,
identity: Optional[IdentityArgs] = None,
location: Optional[str] = None,
managed_resource_group_name: Optional[str] = None,
public_network_access: Optional[Union[str, PublicNetworkAccess]] = None,
tags: Optional[Mapping[str, str]] = None)
func NewAccount(ctx *Context, name string, args AccountArgs, opts ...ResourceOption) (*Account, error)
public Account(string name, AccountArgs args, CustomResourceOptions? opts = null)
public Account(String name, AccountArgs args)
public Account(String name, AccountArgs args, CustomResourceOptions options)
type: azure-native:purview:Account
properties: # The arguments to resource properties.
options: # Bag of options to control resource's behavior.
Parameters
- name string
- The unique name of the resource.
- args AccountArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- resource_name str
- The unique name of the resource.
- args AccountArgs
- The arguments to resource properties.
- opts ResourceOptions
- Bag of options to control resource's behavior.
- ctx Context
- Context object for the current deployment.
- name string
- The unique name of the resource.
- args AccountArgs
- The arguments to resource properties.
- opts ResourceOption
- Bag of options to control resource's behavior.
- name string
- The unique name of the resource.
- args AccountArgs
- The arguments to resource properties.
- opts CustomResourceOptions
- Bag of options to control resource's behavior.
- name String
- The unique name of the resource.
- args AccountArgs
- The arguments to resource properties.
- options CustomResourceOptions
- Bag of options to control resource's behavior.
Constructor example
The following reference example uses placeholder values for all input properties.
var exampleaccountResourceResourceFromPurview = new AzureNative.Purview.Account("exampleaccountResourceResourceFromPurview", new()
{
ResourceGroupName = "string",
AccountName = "string",
Identity =
{
{ "type", "string" },
},
Location = "string",
ManagedResourceGroupName = "string",
PublicNetworkAccess = "string",
Tags =
{
{ "string", "string" },
},
});
example, err := purview.NewAccount(ctx, "exampleaccountResourceResourceFromPurview", &purview.AccountArgs{
ResourceGroupName: "string",
AccountName: "string",
Identity: map[string]interface{}{
"type": "string",
},
Location: "string",
ManagedResourceGroupName: "string",
PublicNetworkAccess: "string",
Tags: map[string]interface{}{
"string": "string",
},
})
var exampleaccountResourceResourceFromPurview = new Account("exampleaccountResourceResourceFromPurview", AccountArgs.builder()
.resourceGroupName("string")
.accountName("string")
.identity(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.location("string")
.managedResourceGroupName("string")
.publicNetworkAccess("string")
.tags(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference))
.build());
exampleaccount_resource_resource_from_purview = azure_native.purview.Account("exampleaccountResourceResourceFromPurview",
resource_group_name=string,
account_name=string,
identity={
type: string,
},
location=string,
managed_resource_group_name=string,
public_network_access=string,
tags={
string: string,
})
const exampleaccountResourceResourceFromPurview = new azure_native.purview.Account("exampleaccountResourceResourceFromPurview", {
resourceGroupName: "string",
accountName: "string",
identity: {
type: "string",
},
location: "string",
managedResourceGroupName: "string",
publicNetworkAccess: "string",
tags: {
string: "string",
},
});
type: azure-native:purview:Account
properties:
accountName: string
identity:
type: string
location: string
managedResourceGroupName: string
publicNetworkAccess: string
resourceGroupName: string
tags:
string: string
Account Resource Properties
To learn more about resource properties and how to use them, see Inputs and Outputs in the Architecture and Concepts docs.
Inputs
In Python, inputs that are objects can be passed either as argument classes or as dictionary literals.
The Account resource accepts the following input properties:
- Resource
Group stringName - The resource group name.
- Account
Name string - The name of the account.
- Identity
Pulumi.
Azure Native. Purview. Inputs. Identity - Identity Info on the tracked resource
- Location string
- Gets or sets the location.
- Managed
Resource stringGroup Name - Gets or sets the managed resource group name
- Public
Network string | Pulumi.Access Azure Native. Purview. Public Network Access - Gets or sets the public network access.
- Dictionary<string, string>
- Tags on the azure resource.
- Resource
Group stringName - The resource group name.
- Account
Name string - The name of the account.
- Identity
Identity
Args - Identity Info on the tracked resource
- Location string
- Gets or sets the location.
- Managed
Resource stringGroup Name - Gets or sets the managed resource group name
- Public
Network string | PublicAccess Network Access - Gets or sets the public network access.
- map[string]string
- Tags on the azure resource.
- resource
Group StringName - The resource group name.
- account
Name String - The name of the account.
- identity Identity
- Identity Info on the tracked resource
- location String
- Gets or sets the location.
- managed
Resource StringGroup Name - Gets or sets the managed resource group name
- public
Network String | PublicAccess Network Access - Gets or sets the public network access.
- Map<String,String>
- Tags on the azure resource.
- resource
Group stringName - The resource group name.
- account
Name string - The name of the account.
- identity Identity
- Identity Info on the tracked resource
- location string
- Gets or sets the location.
- managed
Resource stringGroup Name - Gets or sets the managed resource group name
- public
Network string | PublicAccess Network Access - Gets or sets the public network access.
- {[key: string]: string}
- Tags on the azure resource.
- resource_
group_ strname - The resource group name.
- account_
name str - The name of the account.
- identity
Identity
Args - Identity Info on the tracked resource
- location str
- Gets or sets the location.
- managed_
resource_ strgroup_ name - Gets or sets the managed resource group name
- public_
network_ str | Publicaccess Network Access - Gets or sets the public network access.
- Mapping[str, str]
- Tags on the azure resource.
- resource
Group StringName - The resource group name.
- account
Name String - The name of the account.
- identity Property Map
- Identity Info on the tracked resource
- location String
- Gets or sets the location.
- managed
Resource StringGroup Name - Gets or sets the managed resource group name
- public
Network String | "NotAccess Specified" | "Enabled" | "Disabled" - Gets or sets the public network access.
- Map<String>
- Tags on the azure resource.
Outputs
All input properties are implicitly available as output properties. Additionally, the Account resource produces the following output properties:
- Created
At string - Gets the time at which the entity was created.
- Created
By string - Gets the creator of the entity.
- Created
By stringObject Id - Gets the creators of the entity's object id.
- Endpoints
Pulumi.
Azure Native. Purview. Outputs. Account Properties Response Endpoints - The URIs that are the public endpoints of the account.
- Friendly
Name string - Gets or sets the friendly name.
- Id string
- The provider-assigned unique ID for this managed resource.
- Managed
Resources Pulumi.Azure Native. Purview. Outputs. Account Properties Response Managed Resources - Gets the resource identifiers of the managed resources.
- Name string
- Gets or sets the name.
- Private
Endpoint List<Pulumi.Connections Azure Native. Purview. Outputs. Private Endpoint Connection Response> - Gets the private endpoint connections information.
- Provisioning
State string - Gets or sets the state of the provisioning.
- Sku
Pulumi.
Azure Native. Purview. Outputs. Account Response Sku - Gets or sets the Sku.
- System
Data Pulumi.Azure Native. Purview. Outputs. Account Properties Response System Data - Metadata pertaining to creation and last modification of the resource.
- Type string
- Gets or sets the type.
- Cloud
Connectors Pulumi.Azure Native. Purview. Outputs. Cloud Connectors Response - Cloud connectors. External cloud identifier used as part of scanning configuration.
- Created
At string - Gets the time at which the entity was created.
- Created
By string - Gets the creator of the entity.
- Created
By stringObject Id - Gets the creators of the entity's object id.
- Endpoints
Account
Properties Response Endpoints - The URIs that are the public endpoints of the account.
- Friendly
Name string - Gets or sets the friendly name.
- Id string
- The provider-assigned unique ID for this managed resource.
- Managed
Resources AccountProperties Response Managed Resources - Gets the resource identifiers of the managed resources.
- Name string
- Gets or sets the name.
- Private
Endpoint []PrivateConnections Endpoint Connection Response - Gets the private endpoint connections information.
- Provisioning
State string - Gets or sets the state of the provisioning.
- Sku
Account
Response Sku - Gets or sets the Sku.
- System
Data AccountProperties Response System Data - Metadata pertaining to creation and last modification of the resource.
- Type string
- Gets or sets the type.
- Cloud
Connectors CloudConnectors Response - Cloud connectors. External cloud identifier used as part of scanning configuration.
- created
At String - Gets the time at which the entity was created.
- created
By String - Gets the creator of the entity.
- created
By StringObject Id - Gets the creators of the entity's object id.
- endpoints
Account
Properties Response Endpoints - The URIs that are the public endpoints of the account.
- friendly
Name String - Gets or sets the friendly name.
- id String
- The provider-assigned unique ID for this managed resource.
- managed
Resources AccountProperties Response Managed Resources - Gets the resource identifiers of the managed resources.
- name String
- Gets or sets the name.
- private
Endpoint List<PrivateConnections Endpoint Connection Response> - Gets the private endpoint connections information.
- provisioning
State String - Gets or sets the state of the provisioning.
- sku
Account
Response Sku - Gets or sets the Sku.
- system
Data AccountProperties Response System Data - Metadata pertaining to creation and last modification of the resource.
- type String
- Gets or sets the type.
- cloud
Connectors CloudConnectors Response - Cloud connectors. External cloud identifier used as part of scanning configuration.
- created
At string - Gets the time at which the entity was created.
- created
By string - Gets the creator of the entity.
- created
By stringObject Id - Gets the creators of the entity's object id.
- endpoints
Account
Properties Response Endpoints - The URIs that are the public endpoints of the account.
- friendly
Name string - Gets or sets the friendly name.
- id string
- The provider-assigned unique ID for this managed resource.
- managed
Resources AccountProperties Response Managed Resources - Gets the resource identifiers of the managed resources.
- name string
- Gets or sets the name.
- private
Endpoint PrivateConnections Endpoint Connection Response[] - Gets the private endpoint connections information.
- provisioning
State string - Gets or sets the state of the provisioning.
- sku
Account
Response Sku - Gets or sets the Sku.
- system
Data AccountProperties Response System Data - Metadata pertaining to creation and last modification of the resource.
- type string
- Gets or sets the type.
- cloud
Connectors CloudConnectors Response - Cloud connectors. External cloud identifier used as part of scanning configuration.
- created_
at str - Gets the time at which the entity was created.
- created_
by str - Gets the creator of the entity.
- created_
by_ strobject_ id - Gets the creators of the entity's object id.
- endpoints
Account
Properties Response Endpoints - The URIs that are the public endpoints of the account.
- friendly_
name str - Gets or sets the friendly name.
- id str
- The provider-assigned unique ID for this managed resource.
- managed_
resources AccountProperties Response Managed Resources - Gets the resource identifiers of the managed resources.
- name str
- Gets or sets the name.
- private_
endpoint_ Sequence[Privateconnections Endpoint Connection Response] - Gets the private endpoint connections information.
- provisioning_
state str - Gets or sets the state of the provisioning.
- sku
Account
Response Sku - Gets or sets the Sku.
- system_
data AccountProperties Response System Data - Metadata pertaining to creation and last modification of the resource.
- type str
- Gets or sets the type.
- cloud_
connectors CloudConnectors Response - Cloud connectors. External cloud identifier used as part of scanning configuration.
- created
At String - Gets the time at which the entity was created.
- created
By String - Gets the creator of the entity.
- created
By StringObject Id - Gets the creators of the entity's object id.
- endpoints Property Map
- The URIs that are the public endpoints of the account.
- friendly
Name String - Gets or sets the friendly name.
- id String
- The provider-assigned unique ID for this managed resource.
- managed
Resources Property Map - Gets the resource identifiers of the managed resources.
- name String
- Gets or sets the name.
- private
Endpoint List<Property Map>Connections - Gets the private endpoint connections information.
- provisioning
State String - Gets or sets the state of the provisioning.
- sku Property Map
- Gets or sets the Sku.
- system
Data Property Map - Metadata pertaining to creation and last modification of the resource.
- type String
- Gets or sets the type.
- cloud
Connectors Property Map - Cloud connectors. External cloud identifier used as part of scanning configuration.
Supporting Types
AccountPropertiesResponseEndpoints, AccountPropertiesResponseEndpointsArgs
AccountPropertiesResponseManagedResources, AccountPropertiesResponseManagedResourcesArgs
- Event
Hub stringNamespace - Gets the managed event hub namespace resource identifier.
- Resource
Group string - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- Storage
Account string - Gets the managed storage account resource identifier.
- Event
Hub stringNamespace - Gets the managed event hub namespace resource identifier.
- Resource
Group string - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- Storage
Account string - Gets the managed storage account resource identifier.
- event
Hub StringNamespace - Gets the managed event hub namespace resource identifier.
- resource
Group String - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- storage
Account String - Gets the managed storage account resource identifier.
- event
Hub stringNamespace - Gets the managed event hub namespace resource identifier.
- resource
Group string - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- storage
Account string - Gets the managed storage account resource identifier.
- event_
hub_ strnamespace - Gets the managed event hub namespace resource identifier.
- resource_
group str - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- storage_
account str - Gets the managed storage account resource identifier.
- event
Hub StringNamespace - Gets the managed event hub namespace resource identifier.
- resource
Group String - Gets the managed resource group resource identifier. This resource group will host resource dependencies for the account.
- storage
Account String - Gets the managed storage account resource identifier.
AccountPropertiesResponseSystemData, AccountPropertiesResponseSystemDataArgs
- Created
At string - The timestamp of resource creation (UTC).
- Created
By string - The identity that created the resource.
- Created
By stringType - The type of identity that created the resource.
- Last
Modified stringAt - The timestamp of the last modification the resource (UTC).
- Last
Modified stringBy - The identity that last modified the resource.
- Last
Modified stringBy Type - The type of identity that last modified the resource.
- Created
At string - The timestamp of resource creation (UTC).
- Created
By string - The identity that created the resource.
- Created
By stringType - The type of identity that created the resource.
- Last
Modified stringAt - The timestamp of the last modification the resource (UTC).
- Last
Modified stringBy - The identity that last modified the resource.
- Last
Modified stringBy Type - The type of identity that last modified the resource.
- created
At String - The timestamp of resource creation (UTC).
- created
By String - The identity that created the resource.
- created
By StringType - The type of identity that created the resource.
- last
Modified StringAt - The timestamp of the last modification the resource (UTC).
- last
Modified StringBy - The identity that last modified the resource.
- last
Modified StringBy Type - The type of identity that last modified the resource.
- created
At string - The timestamp of resource creation (UTC).
- created
By string - The identity that created the resource.
- created
By stringType - The type of identity that created the resource.
- last
Modified stringAt - The timestamp of the last modification the resource (UTC).
- last
Modified stringBy - The identity that last modified the resource.
- last
Modified stringBy Type - The type of identity that last modified the resource.
- created_
at str - The timestamp of resource creation (UTC).
- created_
by str - The identity that created the resource.
- created_
by_ strtype - The type of identity that created the resource.
- last_
modified_ strat - The timestamp of the last modification the resource (UTC).
- last_
modified_ strby - The identity that last modified the resource.
- last_
modified_ strby_ type - The type of identity that last modified the resource.
- created
At String - The timestamp of resource creation (UTC).
- created
By String - The identity that created the resource.
- created
By StringType - The type of identity that created the resource.
- last
Modified StringAt - The timestamp of the last modification the resource (UTC).
- last
Modified StringBy - The identity that last modified the resource.
- last
Modified StringBy Type - The type of identity that last modified the resource.
AccountResponseSku, AccountResponseSkuArgs
CloudConnectorsResponse, CloudConnectorsResponseArgs
- Aws
External stringId - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
- Aws
External stringId - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
- aws
External StringId - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
- aws
External stringId - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
- aws_
external_ strid - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
- aws
External StringId - AWS external identifier. Configured in AWS to allow use of the role arn used for scanning
Identity, IdentityArgs
- Type
string | Pulumi.
Azure Native. Purview. Type - Identity Type
- type
String | "System
Assigned" - Identity Type
IdentityResponse, IdentityResponseArgs
- Principal
Id string - Service principal object Id
- Tenant
Id string - Tenant Id
- Type string
- Identity Type
- Principal
Id string - Service principal object Id
- Tenant
Id string - Tenant Id
- Type string
- Identity Type
- principal
Id String - Service principal object Id
- tenant
Id String - Tenant Id
- type String
- Identity Type
- principal
Id string - Service principal object Id
- tenant
Id string - Tenant Id
- type string
- Identity Type
- principal_
id str - Service principal object Id
- tenant_
id str - Tenant Id
- type str
- Identity Type
- principal
Id String - Service principal object Id
- tenant
Id String - Tenant Id
- type String
- Identity Type
PrivateEndpointConnectionResponse, PrivateEndpointConnectionResponseArgs
- Id string
- Gets or sets the identifier.
- Name string
- Gets or sets the name.
- Provisioning
State string - The provisioning state.
- Type string
- Gets or sets the type.
- Private
Endpoint Pulumi.Azure Native. Purview. Inputs. Private Endpoint Response - The private endpoint information.
- Private
Link Pulumi.Service Connection State Azure Native. Purview. Inputs. Private Link Service Connection State Response - The private link service connection state.
- Id string
- Gets or sets the identifier.
- Name string
- Gets or sets the name.
- Provisioning
State string - The provisioning state.
- Type string
- Gets or sets the type.
- Private
Endpoint PrivateEndpoint Response - The private endpoint information.
- Private
Link PrivateService Connection State Link Service Connection State Response - The private link service connection state.
- id String
- Gets or sets the identifier.
- name String
- Gets or sets the name.
- provisioning
State String - The provisioning state.
- type String
- Gets or sets the type.
- private
Endpoint PrivateEndpoint Response - The private endpoint information.
- private
Link PrivateService Connection State Link Service Connection State Response - The private link service connection state.
- id string
- Gets or sets the identifier.
- name string
- Gets or sets the name.
- provisioning
State string - The provisioning state.
- type string
- Gets or sets the type.
- private
Endpoint PrivateEndpoint Response - The private endpoint information.
- private
Link PrivateService Connection State Link Service Connection State Response - The private link service connection state.
- id str
- Gets or sets the identifier.
- name str
- Gets or sets the name.
- provisioning_
state str - The provisioning state.
- type str
- Gets or sets the type.
- private_
endpoint PrivateEndpoint Response - The private endpoint information.
- private_
link_ Privateservice_ connection_ state Link Service Connection State Response - The private link service connection state.
- id String
- Gets or sets the identifier.
- name String
- Gets or sets the name.
- provisioning
State String - The provisioning state.
- type String
- Gets or sets the type.
- private
Endpoint Property Map - The private endpoint information.
- private
Link Property MapService Connection State - The private link service connection state.
PrivateEndpointResponse, PrivateEndpointResponseArgs
- Id string
- The private endpoint identifier.
- Id string
- The private endpoint identifier.
- id String
- The private endpoint identifier.
- id string
- The private endpoint identifier.
- id str
- The private endpoint identifier.
- id String
- The private endpoint identifier.
PrivateLinkServiceConnectionStateResponse, PrivateLinkServiceConnectionStateResponseArgs
- Actions
Required string - The required actions.
- Description string
- The description.
- Status string
- The status.
- Actions
Required string - The required actions.
- Description string
- The description.
- Status string
- The status.
- actions
Required String - The required actions.
- description String
- The description.
- status String
- The status.
- actions
Required string - The required actions.
- description string
- The description.
- status string
- The status.
- actions_
required str - The required actions.
- description str
- The description.
- status str
- The status.
- actions
Required String - The required actions.
- description String
- The description.
- status String
- The status.
PublicNetworkAccess, PublicNetworkAccessArgs
- Not
Specified - NotSpecified
- Enabled
- Enabled
- Disabled
- Disabled
- Public
Network Access Not Specified - NotSpecified
- Public
Network Access Enabled - Enabled
- Public
Network Access Disabled - Disabled
- Not
Specified - NotSpecified
- Enabled
- Enabled
- Disabled
- Disabled
- Not
Specified - NotSpecified
- Enabled
- Enabled
- Disabled
- Disabled
- NOT_SPECIFIED
- NotSpecified
- ENABLED
- Enabled
- DISABLED
- Disabled
- "Not
Specified" - NotSpecified
- "Enabled"
- Enabled
- "Disabled"
- Disabled
Type, TypeArgs
- System
Assigned - SystemAssigned
- Type
System Assigned - SystemAssigned
- System
Assigned - SystemAssigned
- System
Assigned - SystemAssigned
- SYSTEM_ASSIGNED
- SystemAssigned
- "System
Assigned" - SystemAssigned
Import
An existing resource can be imported using its type token, name, and identifier, e.g.
$ pulumi import azure-native:purview:Account account1 /subscriptions/34adfa4f-cedf-4dc0-ba29-b6d1a69ab345/resourceGroups/SampleResourceGroup/providers/Microsoft.Purview/accounts/account1
To learn more about importing existing cloud resources, see Importing resources.
Package Details
- Repository
- azure-native-v1 pulumi/pulumi-azure-native
- License
- Apache-2.0