All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.pulumi.azurenative.solutions.Application Maven / Gradle / Ivy

There is a newer version: 2.82.0
Show newest version
// *** WARNING: this file was generated by pulumi-java-gen. ***
// *** Do not edit by hand unless you're certain you know what you are doing! ***

package com.pulumi.azurenative.solutions;

import com.pulumi.azurenative.Utilities;
import com.pulumi.azurenative.solutions.ApplicationArgs;
import com.pulumi.azurenative.solutions.outputs.ApplicationArtifactResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationAuthorizationResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationBillingDetailsDefinitionResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationClientDetailsResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationJitAccessPolicyResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationPackageContactResponse;
import com.pulumi.azurenative.solutions.outputs.ApplicationPackageSupportUrlsResponse;
import com.pulumi.azurenative.solutions.outputs.IdentityResponse;
import com.pulumi.azurenative.solutions.outputs.PlanResponse;
import com.pulumi.azurenative.solutions.outputs.SkuResponse;
import com.pulumi.azurenative.solutions.outputs.SystemDataResponse;
import com.pulumi.core.Alias;
import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import java.lang.Object;
import java.lang.String;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * Information about managed application.
 * Azure REST API version: 2021-07-01. Prior API version in Azure Native 1.x: 2019-07-01.
 * 
 * Other available API versions: 2017-12-01, 2018-06-01, 2023-12-01-preview.
 * 
 * ## Example Usage
 * ### Create or update managed application
 * 
 * 
 * {@code
 * package generated_program;
 * 
 * import com.pulumi.Context;
 * import com.pulumi.Pulumi;
 * import com.pulumi.core.Output;
 * import com.pulumi.azurenative.solutions.Application;
 * import com.pulumi.azurenative.solutions.ApplicationArgs;
 * 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 application = new Application("application", ApplicationArgs.builder()
 *             .applicationDefinitionId("/subscriptions/subid/resourceGroups/rg/providers/Microsoft.Solutions/applicationDefinitions/myAppDef")
 *             .applicationName("myManagedApplication")
 *             .kind("ServiceCatalog")
 *             .managedResourceGroupId("/subscriptions/subid/resourceGroups/myManagedRG")
 *             .resourceGroupName("rg")
 *             .build());
 * 
 *     }
 * }
 * 
 * }
 * 
* * ## Import * * An existing resource can be imported using its type token, name, and identifier, e.g. * * ```sh * $ pulumi import azure-native:solutions:Application myManagedApplication /subscriptions/{subscriptionId}/resourceGroups/{resourceGroupName}/providers/Microsoft.Solutions/applications/{applicationName} * ``` * */ @ResourceType(type="azure-native:solutions:Application") public class Application extends com.pulumi.resources.CustomResource { /** * The fully qualified path of managed application definition Id. * */ @Export(name="applicationDefinitionId", refs={String.class}, tree="[0]") private Output applicationDefinitionId; /** * @return The fully qualified path of managed application definition Id. * */ public Output> applicationDefinitionId() { return Codegen.optional(this.applicationDefinitionId); } /** * The collection of managed application artifacts. * */ @Export(name="artifacts", refs={List.class,ApplicationArtifactResponse.class}, tree="[0,1]") private Output> artifacts; /** * @return The collection of managed application artifacts. * */ public Output> artifacts() { return this.artifacts; } /** * The read-only authorizations property that is retrieved from the application package. * */ @Export(name="authorizations", refs={List.class,ApplicationAuthorizationResponse.class}, tree="[0,1]") private Output> authorizations; /** * @return The read-only authorizations property that is retrieved from the application package. * */ public Output> authorizations() { return this.authorizations; } /** * The managed application billing details. * */ @Export(name="billingDetails", refs={ApplicationBillingDetailsDefinitionResponse.class}, tree="[0]") private Output billingDetails; /** * @return The managed application billing details. * */ public Output billingDetails() { return this.billingDetails; } /** * The client entity that created the JIT request. * */ @Export(name="createdBy", refs={ApplicationClientDetailsResponse.class}, tree="[0]") private Output createdBy; /** * @return The client entity that created the JIT request. * */ public Output createdBy() { return this.createdBy; } /** * The read-only customer support property that is retrieved from the application package. * */ @Export(name="customerSupport", refs={ApplicationPackageContactResponse.class}, tree="[0]") private Output customerSupport; /** * @return The read-only customer support property that is retrieved from the application package. * */ public Output customerSupport() { return this.customerSupport; } /** * The identity of the resource. * */ @Export(name="identity", refs={IdentityResponse.class}, tree="[0]") private Output identity; /** * @return The identity of the resource. * */ public Output> identity() { return Codegen.optional(this.identity); } /** * The managed application Jit access policy. * */ @Export(name="jitAccessPolicy", refs={ApplicationJitAccessPolicyResponse.class}, tree="[0]") private Output jitAccessPolicy; /** * @return The managed application Jit access policy. * */ public Output> jitAccessPolicy() { return Codegen.optional(this.jitAccessPolicy); } /** * The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog. * */ @Export(name="kind", refs={String.class}, tree="[0]") private Output kind; /** * @return The kind of the managed application. Allowed values are MarketPlace and ServiceCatalog. * */ public Output kind() { return this.kind; } /** * Resource location * */ @Export(name="location", refs={String.class}, tree="[0]") private Output location; /** * @return Resource location * */ public Output> location() { return Codegen.optional(this.location); } /** * ID of the resource that manages this resource. * */ @Export(name="managedBy", refs={String.class}, tree="[0]") private Output managedBy; /** * @return ID of the resource that manages this resource. * */ public Output> managedBy() { return Codegen.optional(this.managedBy); } /** * The managed resource group Id. * */ @Export(name="managedResourceGroupId", refs={String.class}, tree="[0]") private Output managedResourceGroupId; /** * @return The managed resource group Id. * */ public Output> managedResourceGroupId() { return Codegen.optional(this.managedResourceGroupId); } /** * The managed application management mode. * */ @Export(name="managementMode", refs={String.class}, tree="[0]") private Output managementMode; /** * @return The managed application management mode. * */ public Output managementMode() { return this.managementMode; } /** * Resource name * */ @Export(name="name", refs={String.class}, tree="[0]") private Output name; /** * @return Resource name * */ public Output name() { return this.name; } /** * Name and value pairs that define the managed application outputs. * */ @Export(name="outputs", refs={Object.class}, tree="[0]") private Output outputs; /** * @return Name and value pairs that define the managed application outputs. * */ public Output outputs() { return this.outputs; } /** * Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string. * */ @Export(name="parameters", refs={Object.class}, tree="[0]") private Output parameters; /** * @return Name and value pairs that define the managed application parameters. It can be a JObject or a well formed JSON string. * */ public Output> parameters() { return Codegen.optional(this.parameters); } /** * The plan information. * */ @Export(name="plan", refs={PlanResponse.class}, tree="[0]") private Output plan; /** * @return The plan information. * */ public Output> plan() { return Codegen.optional(this.plan); } /** * The managed application provisioning state. * */ @Export(name="provisioningState", refs={String.class}, tree="[0]") private Output provisioningState; /** * @return The managed application provisioning state. * */ public Output provisioningState() { return this.provisioningState; } /** * The publisher tenant Id. * */ @Export(name="publisherTenantId", refs={String.class}, tree="[0]") private Output publisherTenantId; /** * @return The publisher tenant Id. * */ public Output publisherTenantId() { return this.publisherTenantId; } /** * The SKU of the resource. * */ @Export(name="sku", refs={SkuResponse.class}, tree="[0]") private Output sku; /** * @return The SKU of the resource. * */ public Output> sku() { return Codegen.optional(this.sku); } /** * The read-only support URLs property that is retrieved from the application package. * */ @Export(name="supportUrls", refs={ApplicationPackageSupportUrlsResponse.class}, tree="[0]") private Output supportUrls; /** * @return The read-only support URLs property that is retrieved from the application package. * */ public Output supportUrls() { return this.supportUrls; } /** * Metadata pertaining to creation and last modification of the resource. * */ @Export(name="systemData", refs={SystemDataResponse.class}, tree="[0]") private Output systemData; /** * @return Metadata pertaining to creation and last modification of the resource. * */ public Output systemData() { return this.systemData; } /** * Resource tags * */ @Export(name="tags", refs={Map.class,String.class}, tree="[0,1,1]") private Output> tags; /** * @return Resource tags * */ public Output>> tags() { return Codegen.optional(this.tags); } /** * Resource type * */ @Export(name="type", refs={String.class}, tree="[0]") private Output type; /** * @return Resource type * */ public Output type() { return this.type; } /** * The client entity that last updated the JIT request. * */ @Export(name="updatedBy", refs={ApplicationClientDetailsResponse.class}, tree="[0]") private Output updatedBy; /** * @return The client entity that last updated the JIT request. * */ public Output updatedBy() { return this.updatedBy; } /** * * @param name The _unique_ name of the resulting resource. */ public Application(java.lang.String name) { this(name, ApplicationArgs.Empty); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. */ public Application(java.lang.String name, ApplicationArgs args) { this(name, args, null); } /** * * @param name The _unique_ name of the resulting resource. * @param args The arguments to use to populate this resource's properties. * @param options A bag of options that control this resource's behavior. */ public Application(java.lang.String name, ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("azure-native:solutions:Application", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false); } private Application(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { super("azure-native:solutions:Application", name, null, makeResourceOptions(options, id), false); } private static ApplicationArgs makeArgs(ApplicationArgs args, @Nullable com.pulumi.resources.CustomResourceOptions options) { if (options != null && options.getUrn().isPresent()) { return null; } return args == null ? ApplicationArgs.Empty : args; } private static com.pulumi.resources.CustomResourceOptions makeResourceOptions(@Nullable com.pulumi.resources.CustomResourceOptions options, @Nullable Output id) { var defaultOptions = com.pulumi.resources.CustomResourceOptions.builder() .version(Utilities.getVersion()) .aliases(List.of( Output.of(Alias.builder().type("azure-native:solutions/v20160901preview:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20170901:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20171201:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20180201:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20180301:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20180601:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20180901preview:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20190701:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20200821preview:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20210201preview:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20210701:Application").build()), Output.of(Alias.builder().type("azure-native:solutions/v20231201preview:Application").build()) )) .build(); return com.pulumi.resources.CustomResourceOptions.merge(defaultOptions, options, id); } /** * Get an existing Host resource's state with the given name, ID, and optional extra * properties used to qualify the lookup. * * @param name The _unique_ name of the resulting resource. * @param id The _unique_ provider ID of the resource to lookup. * @param options Optional settings to control the behavior of the CustomResource. */ public static Application get(java.lang.String name, Output id, @Nullable com.pulumi.resources.CustomResourceOptions options) { return new Application(name, id, options); } }