1. Packages
  2. HashiCorp Vault
  3. API Docs
  4. transform
  5. getDecode
HashiCorp Vault v6.2.0 published on Friday, Jun 21, 2024 by Pulumi

vault.transform.getDecode

Explore with Pulumi AI

vault logo
HashiCorp Vault v6.2.0 published on Friday, Jun 21, 2024 by Pulumi

    This data source supports the “/transform/decode/{role_name}” Vault endpoint.

    It decodes the provided value using a named role.

    Example Usage

    import * as pulumi from "@pulumi/pulumi";
    import * as vault from "@pulumi/vault";
    
    const transform = new vault.Mount("transform", {
        path: "transform",
        type: "transform",
    });
    const ccn_fpe = new vault.transform.Transformation("ccn-fpe", {
        path: transform.path,
        name: "ccn-fpe",
        type: "fpe",
        template: "builtin/creditcardnumber",
        tweakSource: "internal",
        allowedRoles: ["payments"],
    });
    const payments = new vault.transform.Role("payments", {
        path: ccn_fpe.path,
        name: "payments",
        transformations: ["ccn-fpe"],
    });
    const test = vault.transform.getDecodeOutput({
        path: payments.path,
        roleName: "payments",
        value: "9300-3376-4943-8903",
    });
    
    import pulumi
    import pulumi_vault as vault
    
    transform = vault.Mount("transform",
        path="transform",
        type="transform")
    ccn_fpe = vault.transform.Transformation("ccn-fpe",
        path=transform.path,
        name="ccn-fpe",
        type="fpe",
        template="builtin/creditcardnumber",
        tweak_source="internal",
        allowed_roles=["payments"])
    payments = vault.transform.Role("payments",
        path=ccn_fpe.path,
        name="payments",
        transformations=["ccn-fpe"])
    test = vault.transform.get_decode_output(path=payments.path,
        role_name="payments",
        value="9300-3376-4943-8903")
    
    package main
    
    import (
    	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault"
    	"github.com/pulumi/pulumi-vault/sdk/v6/go/vault/transform"
    	"github.com/pulumi/pulumi/sdk/v3/go/pulumi"
    )
    
    func main() {
    	pulumi.Run(func(ctx *pulumi.Context) error {
    		transform, err := vault.NewMount(ctx, "transform", &vault.MountArgs{
    			Path: pulumi.String("transform"),
    			Type: pulumi.String("transform"),
    		})
    		if err != nil {
    			return err
    		}
    		_, err = transform.NewTransformation(ctx, "ccn-fpe", &transform.TransformationArgs{
    			Path:        transform.Path,
    			Name:        pulumi.String("ccn-fpe"),
    			Type:        pulumi.String("fpe"),
    			Template:    pulumi.String("builtin/creditcardnumber"),
    			TweakSource: pulumi.String("internal"),
    			AllowedRoles: pulumi.StringArray{
    				pulumi.String("payments"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		payments, err := transform.NewRole(ctx, "payments", &transform.RoleArgs{
    			Path: ccn_fpe.Path,
    			Name: pulumi.String("payments"),
    			Transformations: pulumi.StringArray{
    				pulumi.String("ccn-fpe"),
    			},
    		})
    		if err != nil {
    			return err
    		}
    		_ = transform.GetDecodeOutput(ctx, transform.GetDecodeOutputArgs{
    			Path:     payments.Path,
    			RoleName: pulumi.String("payments"),
    			Value:    pulumi.String("9300-3376-4943-8903"),
    		}, nil)
    		return nil
    	})
    }
    
    using System.Collections.Generic;
    using System.Linq;
    using Pulumi;
    using Vault = Pulumi.Vault;
    
    return await Deployment.RunAsync(() => 
    {
        var transform = new Vault.Mount("transform", new()
        {
            Path = "transform",
            Type = "transform",
        });
    
        var ccn_fpe = new Vault.Transform.Transformation("ccn-fpe", new()
        {
            Path = transform.Path,
            Name = "ccn-fpe",
            Type = "fpe",
            Template = "builtin/creditcardnumber",
            TweakSource = "internal",
            AllowedRoles = new[]
            {
                "payments",
            },
        });
    
        var payments = new Vault.Transform.Role("payments", new()
        {
            Path = ccn_fpe.Path,
            Name = "payments",
            Transformations = new[]
            {
                "ccn-fpe",
            },
        });
    
        var test = Vault.Transform.GetDecode.Invoke(new()
        {
            Path = payments.Path,
            RoleName = "payments",
            Value = "9300-3376-4943-8903",
        });
    
    });
    
    package generated_program;
    
    import com.pulumi.Context;
    import com.pulumi.Pulumi;
    import com.pulumi.core.Output;
    import com.pulumi.vault.Mount;
    import com.pulumi.vault.MountArgs;
    import com.pulumi.vault.transform.Transformation;
    import com.pulumi.vault.transform.TransformationArgs;
    import com.pulumi.vault.transform.Role;
    import com.pulumi.vault.transform.RoleArgs;
    import com.pulumi.vault.transform.TransformFunctions;
    import com.pulumi.vault.transform.inputs.GetDecodeArgs;
    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 transform = new Mount("transform", MountArgs.builder()
                .path("transform")
                .type("transform")
                .build());
    
            var ccn_fpe = new Transformation("ccn-fpe", TransformationArgs.builder()
                .path(transform.path())
                .name("ccn-fpe")
                .type("fpe")
                .template("builtin/creditcardnumber")
                .tweakSource("internal")
                .allowedRoles("payments")
                .build());
    
            var payments = new Role("payments", RoleArgs.builder()
                .path(ccn_fpe.path())
                .name("payments")
                .transformations("ccn-fpe")
                .build());
    
            final var test = TransformFunctions.getDecode(GetDecodeArgs.builder()
                .path(payments.path())
                .roleName("payments")
                .value("9300-3376-4943-8903")
                .build());
    
        }
    }
    
    resources:
      transform:
        type: vault:Mount
        properties:
          path: transform
          type: transform
      ccn-fpe:
        type: vault:transform:Transformation
        properties:
          path: ${transform.path}
          name: ccn-fpe
          type: fpe
          template: builtin/creditcardnumber
          tweakSource: internal
          allowedRoles:
            - payments
      payments:
        type: vault:transform:Role
        properties:
          path: ${["ccn-fpe"].path}
          name: payments
          transformations:
            - ccn-fpe
    variables:
      test:
        fn::invoke:
          Function: vault:transform:getDecode
          Arguments:
            path: ${payments.path}
            roleName: payments
            value: 9300-3376-4943-8903
    

    Using getDecode

    Two invocation forms are available. The direct form accepts plain arguments and either blocks until the result value is available, or returns a Promise-wrapped result. The output form accepts Input-wrapped arguments and returns an Output-wrapped result.

    function getDecode(args: GetDecodeArgs, opts?: InvokeOptions): Promise<GetDecodeResult>
    function getDecodeOutput(args: GetDecodeOutputArgs, opts?: InvokeOptions): Output<GetDecodeResult>
    def get_decode(batch_inputs: Optional[Sequence[Mapping[str, Any]]] = None,
                   batch_results: Optional[Sequence[Mapping[str, Any]]] = None,
                   decoded_value: Optional[str] = None,
                   namespace: Optional[str] = None,
                   path: Optional[str] = None,
                   role_name: Optional[str] = None,
                   transformation: Optional[str] = None,
                   tweak: Optional[str] = None,
                   value: Optional[str] = None,
                   opts: Optional[InvokeOptions] = None) -> GetDecodeResult
    def get_decode_output(batch_inputs: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None,
                   batch_results: Optional[pulumi.Input[Sequence[pulumi.Input[Mapping[str, Any]]]]] = None,
                   decoded_value: Optional[pulumi.Input[str]] = None,
                   namespace: Optional[pulumi.Input[str]] = None,
                   path: Optional[pulumi.Input[str]] = None,
                   role_name: Optional[pulumi.Input[str]] = None,
                   transformation: Optional[pulumi.Input[str]] = None,
                   tweak: Optional[pulumi.Input[str]] = None,
                   value: Optional[pulumi.Input[str]] = None,
                   opts: Optional[InvokeOptions] = None) -> Output[GetDecodeResult]
    func GetDecode(ctx *Context, args *GetDecodeArgs, opts ...InvokeOption) (*GetDecodeResult, error)
    func GetDecodeOutput(ctx *Context, args *GetDecodeOutputArgs, opts ...InvokeOption) GetDecodeResultOutput

    > Note: This function is named GetDecode in the Go SDK.

    public static class GetDecode 
    {
        public static Task<GetDecodeResult> InvokeAsync(GetDecodeArgs args, InvokeOptions? opts = null)
        public static Output<GetDecodeResult> Invoke(GetDecodeInvokeArgs args, InvokeOptions? opts = null)
    }
    public static CompletableFuture<GetDecodeResult> getDecode(GetDecodeArgs args, InvokeOptions options)
    // Output-based functions aren't available in Java yet
    
    fn::invoke:
      function: vault:transform/getDecode:getDecode
      arguments:
        # arguments dictionary

    The following arguments are supported:

    Path string
    Path to where the back-end is mounted within Vault.
    RoleName string
    The name of the role.
    BatchInputs List<ImmutableDictionary<string, object>>
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    BatchResults List<ImmutableDictionary<string, object>>
    The result of decoding a batch.
    DecodedValue string
    The result of decoding a value.
    Namespace string
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    Transformation string
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    Tweak string
    The tweak value to use. Only applicable for FPE transformations
    Value string
    The value in which to decode.
    Path string
    Path to where the back-end is mounted within Vault.
    RoleName string
    The name of the role.
    BatchInputs []map[string]interface{}
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    BatchResults []map[string]interface{}
    The result of decoding a batch.
    DecodedValue string
    The result of decoding a value.
    Namespace string
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    Transformation string
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    Tweak string
    The tweak value to use. Only applicable for FPE transformations
    Value string
    The value in which to decode.
    path String
    Path to where the back-end is mounted within Vault.
    roleName String
    The name of the role.
    batchInputs List<Map<String,Object>>
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    batchResults List<Map<String,Object>>
    The result of decoding a batch.
    decodedValue String
    The result of decoding a value.
    namespace String
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    transformation String
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    tweak String
    The tweak value to use. Only applicable for FPE transformations
    value String
    The value in which to decode.
    path string
    Path to where the back-end is mounted within Vault.
    roleName string
    The name of the role.
    batchInputs {[key: string]: any}[]
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    batchResults {[key: string]: any}[]
    The result of decoding a batch.
    decodedValue string
    The result of decoding a value.
    namespace string
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    transformation string
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    tweak string
    The tweak value to use. Only applicable for FPE transformations
    value string
    The value in which to decode.
    path str
    Path to where the back-end is mounted within Vault.
    role_name str
    The name of the role.
    batch_inputs Sequence[Mapping[str, Any]]
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    batch_results Sequence[Mapping[str, Any]]
    The result of decoding a batch.
    decoded_value str
    The result of decoding a value.
    namespace str
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    transformation str
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    tweak str
    The tweak value to use. Only applicable for FPE transformations
    value str
    The value in which to decode.
    path String
    Path to where the back-end is mounted within Vault.
    roleName String
    The name of the role.
    batchInputs List<Map<Any>>
    Specifies a list of items to be decoded in a single batch. If this parameter is set, the top-level parameters 'value', 'transformation' and 'tweak' will be ignored. Each batch item within the list can specify these parameters instead.
    batchResults List<Map<Any>>
    The result of decoding a batch.
    decodedValue String
    The result of decoding a value.
    namespace String
    The namespace of the target resource. The value should not contain leading or trailing forward slashes. The namespace is always relative to the provider's configured namespace. Available only for Vault Enterprise.
    transformation String
    The transformation to perform. If no value is provided and the role contains a single transformation, this value will be inferred from the role.
    tweak String
    The tweak value to use. Only applicable for FPE transformations
    value String
    The value in which to decode.

    getDecode Result

    The following output properties are available:

    BatchResults List<ImmutableDictionary<string, object>>
    DecodedValue string
    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    RoleName string
    BatchInputs List<ImmutableDictionary<string, object>>
    Namespace string
    Transformation string
    Tweak string
    Value string
    BatchResults []map[string]interface{}
    DecodedValue string
    Id string
    The provider-assigned unique ID for this managed resource.
    Path string
    RoleName string
    BatchInputs []map[string]interface{}
    Namespace string
    Transformation string
    Tweak string
    Value string
    batchResults List<Map<String,Object>>
    decodedValue String
    id String
    The provider-assigned unique ID for this managed resource.
    path String
    roleName String
    batchInputs List<Map<String,Object>>
    namespace String
    transformation String
    tweak String
    value String
    batchResults {[key: string]: any}[]
    decodedValue string
    id string
    The provider-assigned unique ID for this managed resource.
    path string
    roleName string
    batchInputs {[key: string]: any}[]
    namespace string
    transformation string
    tweak string
    value string
    batch_results Sequence[Mapping[str, Any]]
    decoded_value str
    id str
    The provider-assigned unique ID for this managed resource.
    path str
    role_name str
    batch_inputs Sequence[Mapping[str, Any]]
    namespace str
    transformation str
    tweak str
    value str
    batchResults List<Map<Any>>
    decodedValue String
    id String
    The provider-assigned unique ID for this managed resource.
    path String
    roleName String
    batchInputs List<Map<Any>>
    namespace String
    transformation String
    tweak String
    value String

    Package Details

    Repository
    Vault pulumi/pulumi-vault
    License
    Apache-2.0
    Notes
    This Pulumi package is based on the vault Terraform Provider.
    vault logo
    HashiCorp Vault v6.2.0 published on Friday, Jun 21, 2024 by Pulumi