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

com.pulumi.f5bigip.As3 Maven / Gradle / Ivy

// *** 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.f5bigip;

import com.pulumi.core.Output;
import com.pulumi.core.annotations.Export;
import com.pulumi.core.annotations.ResourceType;
import com.pulumi.core.internal.Codegen;
import com.pulumi.f5bigip.As3Args;
import com.pulumi.f5bigip.Utilities;
import com.pulumi.f5bigip.inputs.As3State;
import java.lang.Boolean;
import java.lang.String;
import java.util.Optional;
import javax.annotation.Nullable;

/**
 * ## Import
 * 
 * As3 resources can be imported using the partition name, e.g., ( use comma separated partition names if there are multiple partitions in as3 deployments )
 * 
 * ```sh
 * $ pulumi import f5bigip:index/as3:As3 bigip_as3.test Sample_http_01
 * ```
 * 
 * ```sh
 * $ pulumi import f5bigip:index/as3:As3 bigip_as3.test Sample_http_01,Sample_non_http_01
 * ```
 * 
 * #### Import examples ( single and multiple partitions )
 * 
 * ```sh
 * $ pulumi import f5bigip:index/as3:As3 test Sample_http_01
 * ```
 * 
 * bigip_as3.test: Importing from ID "Sample_http_01"...
 * 
 * bigip_as3.test: Import prepared!
 * 
 *   Prepared bigip_as3 for import
 * 
 * bigip_as3.test: Refreshing state... [id=Sample_http_01]
 * 
 * Import successful!
 * 
 * The resources that were imported are shown above. These resources are now in
 * 
 * your Terraform state and will henceforth be managed by Terraform.
 * 
 * $ terraform show
 * 
 * bigip_as3.test:
 * 
 * resource "bigip_as3" "test" {
 * 
 *     as3_json      = jsonencode(
 *     
 *         {
 *     
 *             action      = "deploy"
 *     
 *             class       = "AS3"
 *     
 *             declaration = {
 *     
 *                 Sample_http_01 = {
 *     
 *                     A1    = {
 *     
 *                         class      = "Application"
 *     
 *                         jsessionid = {
 *     
 *                             class             = "Persist"
 *     
 *                             cookieMethod      = "hash"
 *     
 *                             cookieName        = "JSESSIONID"
 *     
 *                             persistenceMethod = "cookie"
 *     
 *                         }
 *     
 *                         service    = {
 *     
 *                             class              = "Service_HTTP"
 *     
 *                             persistenceMethods = [
 *     
 *                                 {
 *     
 *                                     use = "jsessionid"
 *     
 *                                 },
 *     
 *                             ]
 *     
 *                             pool               = "web_pool"
 *     
 *                             virtualAddresses   = [
 *     
 *                                 "10.0.2.10",
 *     
 *                             ]
 *     
 *                         }
 *     
 *                         web_pool   = {
 *     
 *                             class    = "Pool"
 *     
 *                             members  = [
 *     
 *                                 {
 *     
 *                                     serverAddresses = [
 *     
 *                                         "192.0.2.10",
 *     
 *                                         "192.0.2.11",
 *     
 *                                     ]
 *     
 *                                     servicePort     = 80
 *     
 *                                 },
 *     
 *                             ]
 *     
 *                             monitors = [
 *     
 *                                 "http",
 *     
 *                             ]
 *     
 *                         }
 *     
 *                     }
 *     
 *                     class = "Tenant"
 *     
 *                 }
 *     
 *                 class          = "ADC"
 *     
 *                 id             = "UDP_DNS_Sample"
 *     
 *                 label          = "UDP_DNS_Sample"
 *     
 *                 remark         = "Sample of a UDP DNS Load Balancer Service"
 *     
 *                 schemaVersion  = "3.0.0"
 *     
 *             }
 *     
 *             persist     = true
 *     
 *         }
 *     
 *     )
 *     
 *     id            = "Sample_http_01"
 *     
 *     tenant_filter = "Sample_http_01"
 *     
 *     tenant_list   = "Sample_http_01"
 * 
 * }
 * 
 * ```sh
 * $ pulumi import f5bigip:index/as3:As3 test Sample_http_01,Sample_non_http_01
 * ```
 * 
 * bigip_as3.test: Importing from ID "Sample_http_01,Sample_non_http_01"...
 * 
 * bigip_as3.test: Import prepared!
 * 
 *   Prepared bigip_as3 for import
 * 
 * bigip_as3.test: Refreshing state... [id=Sample_http_01,Sample_non_http_01]
 * 
 * Import successful!
 * 
 * The resources that were imported are shown above. These resources are now in
 * 
 * your Terraform state and will henceforth be managed by Terraform.
 * 
 * $ terraform show
 * 
 * bigip_as3.test:
 * 
 * resource "bigip_as3" "test" {
 * 
 *     as3_json      = jsonencode(
 *     
 *         {
 *     
 *             action      = "deploy"
 *     
 *             class       = "AS3"
 *     
 *             declaration = {
 *     
 *                 Sample_http_01     = {
 *     
 *                     A1    = {
 *     
 *                         class      = "Application"
 *     
 *                         jsessionid = {
 *     
 *                             class             = "Persist"
 *     
 *                             cookieMethod      = "hash"
 *     
 *                             cookieName        = "JSESSIONID"
 *     
 *                             persistenceMethod = "cookie"
 *     
 *                         }
 *     
 *                         service    = {
 *     
 *                             class              = "Service_HTTP"
 *     
 *                             persistenceMethods = [
 *     
 *                                 {
 *     
 *                                     use = "jsessionid"
 *     
 *                                 },
 *     
 *                             ]
 *     
 *                             pool               = "web_pool"
 *     
 *                             virtualAddresses   = [
 *     
 *                                 "10.0.2.10",
 *     
 *                             ]
 *     
 *                         }
 *     
 *                         web_pool   = {
 *     
 *                             class    = "Pool"
 *     
 *                             members  = [
 *     
 *                                 {
 *     
 *                                     serverAddresses = [
 *     
 *                                         "192.0.2.10",
 *     
 *                                         "192.0.2.11",
 *     
 *                                     ]
 *     
 *                                     servicePort     = 80
 *     
 *                                 },
 *     
 *                             ]
 *     
 *                             monitors = [
 *     
 *                                 "http",
 *     
 *                             ]
 *     
 *                         }
 *     
 *                     }
 *     
 *                     class = "Tenant"
 *     
 *                 }
 *     
 *                 Sample_non_http_01 = {
 *     
 *                     DNS_Service = {
 *     
 *                         Pool1   = {
 *     
 *                             class    = "Pool"
 *     
 *                             members  = [
 *     
 *                                 {
 *     
 *                                     serverAddresses = [
 *     
 *                                         "10.1.10.100",
 *     
 *                                     ]
 *     
 *                                     servicePort     = 53
 *     
 *                                 },
 *     
 *                                 {
 *     
 *                                     serverAddresses = [
 *     
 *                                         "10.1.10.101",
 *     
 *                                     ]
 *     
 *                                     servicePort     = 53
 *     
 *                                 },
 *     
 *                             ]
 *     
 *                             monitors = [
 *     
 *                                 "icmp",
 *     
 *                             ]
 *     
 *                         }
 *     
 *                         class   = "Application"
 *     
 *                         service = {
 *     
 *                             class            = "Service_UDP"
 *     
 *                             pool             = "Pool1"
 *     
 *                             virtualAddresses = [
 *     
 *                                 "10.1.20.121",
 *     
 *                             ]
 *     
 *                             virtualPort      = 53
 *     
 *                         }
 *     
 *                     }
 *     
 *                     class       = "Tenant"
 *     
 *                 }
 *     
 *                 class              = "ADC"
 *     
 *                 id                 = "UDP_DNS_Sample"
 *     
 *                 label              = "UDP_DNS_Sample"
 *     
 *                 remark             = "Sample of a UDP DNS Load Balancer Service"
 *     
 *                 schemaVersion      = "3.0.0"
 *     
 *             }
 *     
 *             persist     = true
 *     
 *         }
 *     
 *     )
 *     
 *     id            = "Sample_http_01,Sample_non_http_01"
 *     
 *     tenant_filter = "Sample_http_01,Sample_non_http_01"
 *     
 *     tenant_list   = "Sample_http_01,Sample_non_http_01"
 * 
 * }
 * 
 * * `AS3 documentation` - https://clouddocs.f5.com/products/extensions/f5-appsvcs-extension/latest/userguide/composing-a-declaration.html
 * 
 */
@ResourceType(type="f5bigip:index/as3:As3")
public class As3 extends com.pulumi.resources.CustomResource {
    /**
     * List of applications currently deployed on the Big-Ip
     * 
     */
    @Export(name="applicationList", refs={String.class}, tree="[0]")
    private Output applicationList;

    /**
     * @return List of applications currently deployed on the Big-Ip
     * 
     */
    public Output applicationList() {
        return this.applicationList;
    }
    /**
     * Path/Filename of Declarative AS3 JSON which is a json file used with builtin ```file``` function
     * 
     */
    @Export(name="as3Json", refs={String.class}, tree="[0]")
    private Output as3Json;

    /**
     * @return Path/Filename of Declarative AS3 JSON which is a json file used with builtin ```file``` function
     * 
     */
    public Output> as3Json() {
        return Codegen.optional(this.as3Json);
    }
    /**
     * Set True if you want to ignore metadata changes during update. By default it is set to false
     * 
     * * `as3_example1.json` - Example  AS3 Declarative JSON file with single tenant
     * * `as3_example2.json` - Example  AS3 Declarative JSON file with multiple tenants
     * 
     * * `perApplication_example` - Per Application Example - JSON file with multiple Applications (and no Tenant Details)
     * 
     */
    @Export(name="ignoreMetadata", refs={Boolean.class}, tree="[0]")
    private Output ignoreMetadata;

    /**
     * @return Set True if you want to ignore metadata changes during update. By default it is set to false
     * 
     * * `as3_example1.json` - Example  AS3 Declarative JSON file with single tenant
     * * `as3_example2.json` - Example  AS3 Declarative JSON file with multiple tenants
     * 
     * * `perApplication_example` - Per Application Example - JSON file with multiple Applications (and no Tenant Details)
     * 
     */
    public Output> ignoreMetadata() {
        return Codegen.optional(this.ignoreMetadata);
    }
    /**
     * Will specify whether is deployment is done via Per-Application Way or Traditional Way
     * 
     */
    @Export(name="perAppMode", refs={Boolean.class}, tree="[0]")
    private Output perAppMode;

    /**
     * @return Will specify whether is deployment is done via Per-Application Way or Traditional Way
     * 
     */
    public Output perAppMode() {
        return this.perAppMode;
    }
    /**
     * ID of AS3 post declaration async task
     * 
     */
    @Export(name="taskId", refs={String.class}, tree="[0]")
    private Output taskId;

    /**
     * @return ID of AS3 post declaration async task
     * 
     */
    public Output taskId() {
        return this.taskId;
    }
    /**
     * If there are multiple tenants on a BIG-IP, this attribute helps the user to set a particular tenant to which he want to reflect the changes. Other tenants will neither be created nor be modified.
     * 
     */
    @Export(name="tenantFilter", refs={String.class}, tree="[0]")
    private Output tenantFilter;

    /**
     * @return If there are multiple tenants on a BIG-IP, this attribute helps the user to set a particular tenant to which he want to reflect the changes. Other tenants will neither be created nor be modified.
     * 
     */
    public Output tenantFilter() {
        return this.tenantFilter;
    }
    /**
     * List of tenants currently deployed on the Big-Ip
     * 
     */
    @Export(name="tenantList", refs={String.class}, tree="[0]")
    private Output tenantList;

    /**
     * @return List of tenants currently deployed on the Big-Ip
     * 
     */
    public Output tenantList() {
        return this.tenantList;
    }
    /**
     * Name of Tenant. This name is used only in the case of Per-Application Deployment. If it is not provided, then a random name would be generated.
     * 
     */
    @Export(name="tenantName", refs={String.class}, tree="[0]")
    private Output tenantName;

    /**
     * @return Name of Tenant. This name is used only in the case of Per-Application Deployment. If it is not provided, then a random name would be generated.
     * 
     */
    public Output tenantName() {
        return this.tenantName;
    }

    /**
     *
     * @param name The _unique_ name of the resulting resource.
     */
    public As3(java.lang.String name) {
        this(name, As3Args.Empty);
    }
    /**
     *
     * @param name The _unique_ name of the resulting resource.
     * @param args The arguments to use to populate this resource's properties.
     */
    public As3(java.lang.String name, @Nullable As3Args 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 As3(java.lang.String name, @Nullable As3Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("f5bigip:index/as3:As3", name, makeArgs(args, options), makeResourceOptions(options, Codegen.empty()), false);
    }

    private As3(java.lang.String name, Output id, @Nullable As3State state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        super("f5bigip:index/as3:As3", name, state, makeResourceOptions(options, id), false);
    }

    private static As3Args makeArgs(@Nullable As3Args args, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        if (options != null && options.getUrn().isPresent()) {
            return null;
        }
        return args == null ? As3Args.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())
            .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 state
     * @param options Optional settings to control the behavior of the CustomResource.
     */
    public static As3 get(java.lang.String name, Output id, @Nullable As3State state, @Nullable com.pulumi.resources.CustomResourceOptions options) {
        return new As3(name, id, state, options);
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy