ApplicationArgs

data class ApplicationArgs(val applicationDefinitionId: Output<String>? = null, val kind: Output<String>? = null, val location: Output<String>? = null, val managedResourceGroupName: Output<String>? = null, val name: Output<String>? = null, val parameterValues: Output<String>? = null, val plan: Output<ApplicationPlanArgs>? = null, val resourceGroupName: Output<String>? = null, val tags: Output<Map<String, String>>? = null) : ConvertibleToJava<ApplicationArgs>

Manages a Managed Application.

Example Usage

import * as pulumi from "@pulumi/pulumi";
import * as azure from "@pulumi/azure";
import * as std from "@pulumi/std";
const current = azure.core.getClientConfig({});
const builtin = azure.authorization.getRoleDefinition({
name: "Contributor",
});
const example = new azure.core.ResourceGroup("example", {
name: "example-resources",
location: "West Europe",
});
const exampleDefinition = new azure.managedapplication.Definition("example", {
name: "examplemanagedapplicationdefinition",
location: example.location,
resourceGroupName: example.name,
lockLevel: "ReadOnly",
packageFileUri: "https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip",
displayName: "TestManagedAppDefinition",
description: "Test Managed App Definition",
authorizations: [{
servicePrincipalId: current.then(current => current.objectId),
roleDefinitionId: pulumi.all([builtin.then(builtin => std.split({
separator: "/",
text: builtin.id,
})), builtin.then(builtin => std.split({
separator: "/",
text: builtin.id,
})).then(invoke => invoke.result).length]).apply(([invoke, length]) => invoke&#46;result[length - 1]),
}],
});
const exampleApplication = new azure.managedapplication.Application("example", {
name: "example-managedapplication",
location: example.location,
resourceGroupName: example.name,
kind: "ServiceCatalog",
managedResourceGroupName: "infrastructureGroup",
applicationDefinitionId: exampleDefinition.id,
parameterValues: pulumi.jsonStringify({
location: {
value: example.location,
},
storageAccountNamePrefix: {
value: "storeNamePrefix",
},
storageAccountType: {
value: "Standard_LRS",
},
}),
});
import pulumi
import json
import pulumi_azure as azure
import pulumi_std as std
current = azure.core.get_client_config()
builtin = azure.authorization.get_role_definition(name="Contributor")
example = azure.core.ResourceGroup("example",
name="example-resources",
location="West Europe")
example_definition = azure.managedapplication.Definition("example",
name="examplemanagedapplicationdefinition",
location=example.location,
resource_group_name=example.name,
lock_level="ReadOnly",
package_file_uri="https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip",
display_name="TestManagedAppDefinition",
description="Test Managed App Definition",
authorizations=[{
"service_principal_id": current.object_id,
"role_definition_id": len(std.split(separator="/",
text=builtin.id).result).apply(lambda length: std.split(separator="/",
text=builtin.id).result[length - 1]),
}])
example_application = azure.managedapplication.Application("example",
name="example-managedapplication",
location=example.location,
resource_group_name=example.name,
kind="ServiceCatalog",
managed_resource_group_name="infrastructureGroup",
application_definition_id=example_definition.id,
parameter_values=pulumi.Output.json_dumps({
"location": {
"value": example.location,
},
"storageAccountNamePrefix": {
"value": "storeNamePrefix",
},
"storageAccountType": {
"value": "Standard_LRS",
},
}))
using System.Collections.Generic;
using System.Linq;
using System.Text.Json;
using Pulumi;
using Azure = Pulumi.Azure;
using Std = Pulumi.Std;
return await Deployment.RunAsync(() =>
{
var current = Azure.Core.GetClientConfig.Invoke();
var builtin = Azure.Authorization.GetRoleDefinition.Invoke(new()
{
Name = "Contributor",
});
var example = new Azure.Core.ResourceGroup("example", new()
{
Name = "example-resources",
Location = "West Europe",
});
var exampleDefinition = new Azure.ManagedApplication.Definition("example", new()
{
Name = "examplemanagedapplicationdefinition",
Location = example.Location,
ResourceGroupName = example.Name,
LockLevel = "ReadOnly",
PackageFileUri = "https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip",
DisplayName = "TestManagedAppDefinition",
Description = "Test Managed App Definition",
Authorizations = new[]
{
new Azure.ManagedApplication.Inputs.DefinitionAuthorizationArgs
{
ServicePrincipalId = current.Apply(getClientConfigResult => getClientConfigResult.ObjectId),
RoleDefinitionId = Output.Tuple(Std.Split.Invoke(new()
{
Separator = "/",
Text = builtin.Apply(getRoleDefinitionResult => getRoleDefinitionResult.Id),
}), Std.Split.Invoke(new()
{
Separator = "/",
Text = builtin.Apply(getRoleDefinitionResult => getRoleDefinitionResult.Id),
}).Apply(invoke => invoke.Result).Length).Apply(values =>
{
var invoke = values.Item1;
var length = values.Item2;
return invoke.Result[length - 1];
}),
},
},
});
var exampleApplication = new Azure.ManagedApplication.Application("example", new()
{
Name = "example-managedapplication",
Location = example.Location,
ResourceGroupName = example.Name,
Kind = "ServiceCatalog",
ManagedResourceGroupName = "infrastructureGroup",
ApplicationDefinitionId = exampleDefinition.Id,
ParameterValues = Output.JsonSerialize(Output.Create(new Dictionary<string, object?>
{
["location"] = new Dictionary<string, object?>
{
["value"] = example.Location,
},
["storageAccountNamePrefix"] = new Dictionary<string, object?>
{
["value"] = "storeNamePrefix",
},
["storageAccountType"] = new Dictionary<string, object?>
{
["value"] = "Standard_LRS",
},
})),
});
});
package main
import (
"encoding/json"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/authorization"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/core"
"github.com/pulumi/pulumi-azure/sdk/v6/go/azure/managedapplication"
"github.com/pulumi/pulumi-std/sdk/go/std"
"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
)
func main() {
pulumi.Run(func(ctx *pulumi.Context) error {
current, err := core.GetClientConfig(ctx, map[string]interface{}{}, nil)
if err != nil {
return err
}
builtin, err := authorization.LookupRoleDefinition(ctx, &authorization.LookupRoleDefinitionArgs{
Name: pulumi.StringRef("Contributor"),
}, nil)
if err != nil {
return err
}
example, err := core.NewResourceGroup(ctx, "example", &core.ResourceGroupArgs{
Name: pulumi.String("example-resources"),
Location: pulumi.String("West Europe"),
})
if err != nil {
return err
}
invokeSplit, err := std.Split(ctx, &std.SplitArgs{
Separator: "/",
Text: builtin.Id,
}, nil)
if err != nil {
return err
}
invokeSplit1, err := std.Split(ctx, map[string]interface{}{
"separator": "/",
"text": builtin.Id,
}, nil)
if err != nil {
return err
}
exampleDefinition, err := managedapplication.NewDefinition(ctx, "example", &managedapplication.DefinitionArgs{
Name: pulumi.String("examplemanagedapplicationdefinition"),
Location: example.Location,
ResourceGroupName: example.Name,
LockLevel: pulumi.String("ReadOnly"),
PackageFileUri: pulumi.String("https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip"),
DisplayName: pulumi.String("TestManagedAppDefinition"),
Description: pulumi.String("Test Managed App Definition"),
Authorizations: managedapplication.DefinitionAuthorizationArray{
&managedapplication.DefinitionAuthorizationArgs{
ServicePrincipalId: pulumi.String(current.ObjectId),
RoleDefinitionId: len(invokeSplit.Result).ApplyT(func(length int) (string, error) {
return invokeSplit1.Result[length-1], nil
}).(pulumi.StringOutput),
},
},
})
if err != nil {
return err
}
_, err = managedapplication.NewApplication(ctx, "example", &managedapplication.ApplicationArgs{
Name: pulumi.String("example-managedapplication"),
Location: example.Location,
ResourceGroupName: example.Name,
Kind: pulumi.String("ServiceCatalog"),
ManagedResourceGroupName: pulumi.String("infrastructureGroup"),
ApplicationDefinitionId: exampleDefinition.ID(),
ParameterValues: example.Location.ApplyT(func(location string) (pulumi.String, error) {
var _zero pulumi.String
tmpJSON0, err := json.Marshal(map[string]interface{}{
"location": map[string]interface{}{
"value": location,
},
"storageAccountNamePrefix": map[string]interface{}{
"value": "storeNamePrefix",
},
"storageAccountType": map[string]interface{}{
"value": "Standard_LRS",
},
})
if err != nil {
return _zero, err
}
json0 := string(tmpJSON0)
return pulumi.String(json0), nil
}).(pulumi.StringOutput),
})
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.azure.core.CoreFunctions;
import com.pulumi.azure.authorization.AuthorizationFunctions;
import com.pulumi.azure.authorization.inputs.GetRoleDefinitionArgs;
import com.pulumi.azure.core.ResourceGroup;
import com.pulumi.azure.core.ResourceGroupArgs;
import com.pulumi.azure.managedapplication.Definition;
import com.pulumi.azure.managedapplication.DefinitionArgs;
import com.pulumi.azure.managedapplication.inputs.DefinitionAuthorizationArgs;
import com.pulumi.std.StdFunctions;
import com.pulumi.std.inputs.SplitArgs;
import com.pulumi.azure.managedapplication.Application;
import com.pulumi.azure.managedapplication.ApplicationArgs;
import static com.pulumi.codegen.internal.Serialization.*;
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) {
final var current = CoreFunctions.getClientConfig(%!v(PANIC=Format method: runtime error: invalid memory address or nil pointer dereference);
final var builtin = AuthorizationFunctions.getRoleDefinition(GetRoleDefinitionArgs.builder()
.name("Contributor")
.build());
var example = new ResourceGroup("example", ResourceGroupArgs.builder()
.name("example-resources")
.location("West Europe")
.build());
var exampleDefinition = new Definition("exampleDefinition", DefinitionArgs.builder()
.name("examplemanagedapplicationdefinition")
.location(example.location())
.resourceGroupName(example.name())
.lockLevel("ReadOnly")
.packageFileUri("https://github.com/Azure/azure-managedapp-samples/raw/master/Managed Application Sample Packages/201-managed-storage-account/managedstorage.zip")
.displayName("TestManagedAppDefinition")
.description("Test Managed App Definition")
.authorizations(DefinitionAuthorizationArgs.builder()
.servicePrincipalId(current.objectId())
.roleDefinitionId(StdFunctions.split(SplitArgs.builder()
.separator("/")
.text(builtin.id())
.build()).result().length().applyValue(_length -> StdFunctions.split(SplitArgs.builder()
.separator("/")
.text(builtin.id())
.build()).result()[_length - 1]))
.build())
.build());
var exampleApplication = new Application("exampleApplication", ApplicationArgs.builder()
.name("example-managedapplication")
.location(example.location())
.resourceGroupName(example.name())
.kind("ServiceCatalog")
.managedResourceGroupName("infrastructureGroup")
.applicationDefinitionId(exampleDefinition.id())
.parameterValues(example.location().applyValue(_location -> serializeJson(
jsonObject(
jsonProperty("location", jsonObject(
jsonProperty("value", _location)
)),
jsonProperty("storageAccountNamePrefix", jsonObject(
jsonProperty("value", "storeNamePrefix")
)),
jsonProperty("storageAccountType", jsonObject(
jsonProperty("value", "Standard_LRS")
))
))))
.build());
}
}

API Providers

This resource uses the following Azure API Providers:

  • Microsoft.Solutions: 2021-07-01

Import

Managed Application can be imported using the resource id, e.g.

$ pulumi import azure:managedapplication/application:Application example /subscriptions/00000000-0000-0000-0000-000000000000/resourceGroups/group1/providers/Microsoft.Solutions/applications/app1

Constructors

Link copied to clipboard
constructor(applicationDefinitionId: Output<String>? = null, kind: Output<String>? = null, location: Output<String>? = null, managedResourceGroupName: Output<String>? = null, name: Output<String>? = null, parameterValues: Output<String>? = null, plan: Output<ApplicationPlanArgs>? = null, resourceGroupName: Output<String>? = null, tags: Output<Map<String, String>>? = null)

Properties

Link copied to clipboard
val applicationDefinitionId: Output<String>? = null

The application definition ID to deploy.

Link copied to clipboard
val kind: Output<String>? = null

The kind of the managed application to deploy. Possible values are MarketPlace and ServiceCatalog. Changing this forces a new resource to be created.

Link copied to clipboard
val location: Output<String>? = null

Specifies the supported Azure location where the resource exists. Changing this forces a new resource to be created.

Link copied to clipboard
val managedResourceGroupName: Output<String>? = null

The name of the target resource group where all the resources deployed by the managed application will reside. Changing this forces a new resource to be created.

Link copied to clipboard
val name: Output<String>? = null

Specifies the name of the Managed Application. Changing this forces a new resource to be created.

Link copied to clipboard
val parameterValues: Output<String>? = null

The parameter values to pass to the Managed Application. This field is a JSON object that allows you to assign parameters to this Managed Application.

Link copied to clipboard
val plan: Output<ApplicationPlanArgs>? = null

One plan block as defined below. Changing this forces a new resource to be created.

Link copied to clipboard
val resourceGroupName: Output<String>? = null

The name of the Resource Group where the Managed Application should exist. Changing this forces a new resource to be created.

Link copied to clipboard
val tags: Output<Map<String, String>>? = null

A mapping of tags to assign to the resource.

Functions

Link copied to clipboard
open override fun toJava(): ApplicationArgs